diff mbox series

[bug#69783,v2] website: Convert old style sheets into a theme.

Message ID 20240315153337.5713-1-sirgazil@zoho.com
State New
Headers show
Series [bug#69783,v2] website: Convert old style sheets into a theme. | expand

Commit Message

vasilii.smirnov--- via Guix-patches" via March 15, 2024, 3:33 p.m. UTC
From: Luis Felipe <sirgazil@zoho.com>

This change introduces the concept of website themes to separate the
look and feel of the website from unrelated static files and make it
easier to update themes, create new ones or switch between them.

* website/themes/initial: New theme.
* website/haunt.scm (site): Include the "themes" directory.
* website/apps/base/utils.scm (guix-website-theme): New variable.
(theme-url): New URL shorthand procedure.

The following template files were updated to use the new theme URL
shorthand:

* website/apps/base/templates/about.scm
* website/apps/base/templates/components.scm
* website/apps/base/templates/contact.scm
* website/apps/base/templates/contribute.scm
* website/apps/base/templates/cuirass.scm
* website/apps/base/templates/donate.scm
* website/apps/base/templates/graphics.scm
* website/apps/base/templates/help.scm
* website/apps/base/templates/home.scm
* website/apps/base/templates/irc.scm
* website/apps/base/templates/menu.scm
* website/apps/base/templates/security.scm
* website/apps/base/templates/theme.scm
* website/apps/blog/templates/feed.scm
* website/apps/blog/templates/post-list.scm
* website/apps/blog/templates/post.scm
* website/apps/blog/templates/tag.scm
* website/apps/download/templates/download-latest.scm
* website/apps/download/templates/download.scm
* website/apps/media/templates/components.scm
* website/apps/media/templates/publication-list.scm
* website/apps/media/templates/screenshot.scm
* website/apps/media/templates/screenshots-overview.scm
* website/apps/media/templates/video-list.scm
* website/apps/media/templates/video.scm

The following files were moved to the "initial" theme:

* website/static/base/css/breadcrumbs.css -> website/themes/initial/css/breadcrumbs.css
* website/static/base/css/buttons.css -> website/themes/initial/css/buttons.css
* website/static/base/css/code.css -> website/themes/initial/css/code.css
* website/static/base/css/common.css -> website/themes/initial/css/common.css
* website/static/base/css/contact.css -> website/themes/initial/css/contact.css
* website/static/base/css/download.css -> website/themes/initial/css/download.css
* website/static/base/css/elements.css -> website/themes/initial/css/elements.css
* website/static/base/css/footer.css -> website/themes/initial/css/footer.css
* website/static/base/css/index.css -> website/themes/initial/css/index.css
* website/static/base/css/item-preview.css -> website/themes/initial/css/item-preview.css
* website/static/base/css/manual.css -> website/themes/initial/css/manual.css
* website/static/base/css/menu.css -> website/themes/initial/css/menu.css
* website/static/base/css/messages.css -> website/themes/initial/css/messages.css
* website/static/base/css/navbar.css -> website/themes/initial/css/navbar.css
* website/static/base/css/page.css -> website/themes/initial/css/page.css
* website/static/blog/css/post.css -> website/themes/initial/css/post.css
* website/static/base/css/sidebar.css -> website/themes/initial/css/sidebar.css
* website/static/base/img/Guix-logo.png -> website/themes/initial/img/Guix-logo.png
* website/static/base/img/Guix.png -> website/themes/initial/img/Guix.png
* website/static/base/img/back-btn-bg.png -> website/themes/initial/img/back-btn-bg.png
* website/static/base/img/breadcrumbs-bg.png -> website/themes/initial/img/breadcrumbs-bg.png
* website/static/base/img/chat-icon.png -> website/themes/initial/img/chat-icon.png
* website/static/base/img/checkerboard-bg.png -> website/themes/initial/img/checkerboard-bg.png
* website/static/base/img/cookbook-icon.png -> website/themes/initial/img/cookbook-icon.png
* website/static/base/img/depression-shadow-top.png -> website/themes/initial/img/depression-shadow-top.png
* website/static/base/img/dropdown-bg.png -> website/themes/initial/img/dropdown-bg.png
* website/static/base/img/email-icon.png -> website/themes/initial/img/email-icon.png
* website/static/base/img/featured-box-bg.png -> website/themes/initial/img/featured-box-bg.png
* website/static/base/img/feed-bg-white.png -> website/themes/initial/img/feed-bg-white.png
* website/static/base/img/feed.png -> website/themes/initial/img/feed.png
* website/static/base/img/feed.svg -> website/themes/initial/img/feed.svg
* website/static/base/img/h-separator-dark.png -> website/themes/initial/img/h-separator-dark.png
* website/static/base/img/h-separator.png -> website/themes/initial/img/h-separator.png
* website/static/base/img/icon.png -> website/themes/initial/img/icon.png
* website/static/base/img/icon.svg -> website/themes/initial/img/icon.svg
* website/static/base/img/icon-set.svg -> website/themes/initial/img/icon-set.svg
* website/static/base/img/language-picker.svg -> website/themes/initial/img/language-picker.svg
* website/static/base/img/library-icon.png -> website/themes/initial/img/library-icon.png
* website/static/base/img/link-arrow-shaper.svg -> website/themes/initial/img/link-arrow-shaper.svg
* website/static/base/img/link-arrow.png -> website/themes/initial/img/link-arrow.png
* website/static/base/img/manual-icon.png -> website/themes/initial/img/manual-icon.png
* website/static/base/img/manual-latest-icon.png -> website/themes/initial/img/manual-latest-icon.png
* website/static/base/img/menu-btn-bg.png -> website/themes/initial/img/menu-btn-bg.png
* website/static/base/img/menu-item-active-bg.png -> website/themes/initial/img/menu-item-active-bg.png
* website/static/base/img/more-info-bg.png -> website/themes/initial/img/more-info-bg.png
* website/static/base/img/noise-bg.png -> website/themes/initial/img/noise-bg.png
* website/static/base/img/videos-icon.png -> website/themes/initial/img/videos-icon.png
* website/static/base/img/white-star.png -> website/themes/initial/img/white-star.png
* website/static/base/img/wiki-icon.png -> website/themes/initial/img/wiki-icon.png
* website/static/media/css/publications.css -> website/themes/initial/css/publications.css
* website/static/media/css/screenshots.css -> website/themes/initial/css/screenshots.css
* website/static/media/css/video-list.css -> website/themes/initial/css/video-list.css
* website/static/media/css/video-preview.css -> website/themes/initial/css/video-preview.css
* website/static/media/css/video.css -> website/themes/initial/css/video.css
* website/static/media/img/playing-icon.svg -> website/themes/initial/img/playing-icon.svg
* website/static/media/img/playlist-icon.svg -> website/themes/initial/img/playlist-icon.svg
* website/static/media/img/scientific-mark.svg -> website/themes/initial/img/scientific-mark.svg
* website/static/packages/css/letter-selector.css -> website/themes/initial/css/letter-selector.css
* website/static/packages/css/package-list.css -> website/themes/initial/css/package-list.css
* website/static/packages/css/package.css -> website/themes/initial/css/package.css
* website/static/packages/img/red-tag.png -> website/themes/initial/img/red-tag.png

The following files were removed:

* website/static/base/img/GuixSD-logo.png: Delete (obsolete).
---
 website/apps/base/templates/about.scm         |   2 +-
 website/apps/base/templates/components.scm    |   6 +++---
 website/apps/base/templates/contact.scm       |   6 +++---
 website/apps/base/templates/contribute.scm    |   4 ++--
 website/apps/base/templates/cuirass.scm       |   2 +-
 website/apps/base/templates/donate.scm        |   2 +-
 website/apps/base/templates/graphics.scm      |   4 ++--
 website/apps/base/templates/help.scm          |  20 +++++++++---------
 website/apps/base/templates/home.scm          |   6 +++---
 website/apps/base/templates/irc.scm           |   2 +-
 website/apps/base/templates/menu.scm          |   2 +-
 website/apps/base/templates/security.scm      |   2 +-
 website/apps/base/templates/theme.scm         |  18 ++++++++--------
 website/apps/base/utils.scm                   |  20 +++++++++++++++++-
 website/apps/blog/templates/feed.scm          |   2 +-
 website/apps/blog/templates/post-list.scm     |   6 +++---
 website/apps/blog/templates/post.scm          |   6 +++---
 website/apps/blog/templates/tag.scm           |   6 +++---
 .../download/templates/download-latest.scm    |   4 ++--
 website/apps/download/templates/download.scm  |   4 ++--
 website/apps/media/templates/components.scm   |   6 +++---
 .../apps/media/templates/publication-list.scm |   4 ++--
 website/apps/media/templates/screenshot.scm   |   4 ++--
 .../media/templates/screenshots-overview.scm  |   2 +-
 website/apps/media/templates/video-list.scm   |   4 ++--
 website/apps/media/templates/video.scm        |   4 ++--
 website/haunt.scm                             |   1 +
 website/static/base/img/GuixSD-logo.png       | Bin 6785 -> 0 bytes
 website/themes/README.org                     |   6 ++++++
 .../initial}/css/breadcrumbs.css              |   0
 .../base => themes/initial}/css/buttons.css   |   0
 .../base => themes/initial}/css/code.css      |   0
 .../base => themes/initial}/css/common.css    |   0
 .../base => themes/initial}/css/contact.css   |   0
 .../base => themes/initial}/css/download.css  |   0
 .../base => themes/initial}/css/elements.css  |   0
 .../base => themes/initial}/css/footer.css    |   0
 .../base => themes/initial}/css/index.css     |   0
 .../initial}/css/item-preview.css             |   0
 .../initial}/css/letter-selector.css          |   0
 .../base => themes/initial}/css/manual.css    |   0
 .../base => themes/initial}/css/menu.css      |   0
 .../base => themes/initial}/css/messages.css  |   0
 .../base => themes/initial}/css/navbar.css    |   0
 .../initial}/css/package-list.css             |   0
 .../initial}/css/package.css                  |   0
 .../base => themes/initial}/css/page.css      |   0
 .../blog => themes/initial}/css/post.css      |   0
 .../initial}/css/publications.css             |   2 +-
 .../initial}/css/screenshots.css              |   0
 .../base => themes/initial}/css/sidebar.css   |   2 +-
 .../initial}/css/video-list.css               |   0
 .../initial}/css/video-preview.css            |   0
 .../media => themes/initial}/css/video.css    |   0
 .../base => themes/initial}/img/Guix-logo.png | Bin
 .../base => themes/initial}/img/Guix.png      | Bin
 .../initial}/img/back-btn-bg.png              | Bin
 .../initial}/img/breadcrumbs-bg.png           | Bin
 .../base => themes/initial}/img/chat-icon.png | Bin
 .../initial}/img/checkerboard-bg.png          | Bin
 .../initial}/img/cookbook-icon.png            | Bin
 .../initial}/img/depression-shadow-top.png    | Bin
 .../initial}/img/dropdown-bg.png              | Bin
 .../initial}/img/email-icon.png               | Bin
 .../initial}/img/featured-box-bg.png          | Bin
 .../initial}/img/feed-bg-white.png            | Bin
 .../base => themes/initial}/img/feed.png      | Bin
 .../base => themes/initial}/img/feed.svg      |   0
 .../initial}/img/h-separator-dark.png         | Bin
 .../initial}/img/h-separator.png              | Bin
 .../base => themes/initial}/img/icon-set.svg  |   0
 .../base => themes/initial}/img/icon.png      | Bin
 .../base => themes/initial}/img/icon.svg      |   0
 .../initial}/img/language-picker.svg          |   0
 .../initial}/img/library-icon.png             | Bin
 .../initial}/img/link-arrow-shaper.svg        |   0
 .../initial}/img/link-arrow.png               | Bin
 .../initial}/img/manual-icon.png              | Bin
 .../initial}/img/manual-latest-icon.png       | Bin
 .../initial}/img/menu-btn-bg.png              | Bin
 .../initial}/img/menu-item-active-bg.png      | Bin
 .../initial}/img/more-info-bg.png             | Bin
 .../base => themes/initial}/img/noise-bg.png  | Bin
 .../initial}/img/playing-icon.svg             |   0
 .../initial}/img/playlist-icon.svg            |   0
 .../initial}/img/red-tag.png                  | Bin
 .../initial}/img/scientific-mark.svg          |   0
 .../initial}/img/videos-icon.png              | Bin
 .../initial}/img/white-star.png               | Bin
 .../base => themes/initial}/img/wiki-icon.png | Bin
 90 files changed, 92 insertions(+), 67 deletions(-)
 delete mode 100644 website/static/base/img/GuixSD-logo.png
 create mode 100644 website/themes/README.org
 rename website/{static/base => themes/initial}/css/breadcrumbs.css (100%)
 rename website/{static/base => themes/initial}/css/buttons.css (100%)
 rename website/{static/base => themes/initial}/css/code.css (100%)
 rename website/{static/base => themes/initial}/css/common.css (100%)
 rename website/{static/base => themes/initial}/css/contact.css (100%)
 rename website/{static/base => themes/initial}/css/download.css (100%)
 rename website/{static/base => themes/initial}/css/elements.css (100%)
 rename website/{static/base => themes/initial}/css/footer.css (100%)
 rename website/{static/base => themes/initial}/css/index.css (100%)
 rename website/{static/base => themes/initial}/css/item-preview.css (100%)
 rename website/{static/packages => themes/initial}/css/letter-selector.css (100%)
 rename website/{static/base => themes/initial}/css/manual.css (100%)
 rename website/{static/base => themes/initial}/css/menu.css (100%)
 rename website/{static/base => themes/initial}/css/messages.css (100%)
 rename website/{static/base => themes/initial}/css/navbar.css (100%)
 rename website/{static/packages => themes/initial}/css/package-list.css (100%)
 rename website/{static/packages => themes/initial}/css/package.css (100%)
 rename website/{static/base => themes/initial}/css/page.css (100%)
 rename website/{static/blog => themes/initial}/css/post.css (100%)
 rename website/{static/media => themes/initial}/css/publications.css (92%)
 rename website/{static/media => themes/initial}/css/screenshots.css (100%)
 rename website/{static/base => themes/initial}/css/sidebar.css (96%)
 rename website/{static/media => themes/initial}/css/video-list.css (100%)
 rename website/{static/media => themes/initial}/css/video-preview.css (100%)
 rename website/{static/media => themes/initial}/css/video.css (100%)
 rename website/{static/base => themes/initial}/img/Guix-logo.png (100%)
 rename website/{static/base => themes/initial}/img/Guix.png (100%)
 rename website/{static/base => themes/initial}/img/back-btn-bg.png (100%)
 rename website/{static/base => themes/initial}/img/breadcrumbs-bg.png (100%)
 rename website/{static/base => themes/initial}/img/chat-icon.png (100%)
 rename website/{static/base => themes/initial}/img/checkerboard-bg.png (100%)
 rename website/{static/base => themes/initial}/img/cookbook-icon.png (100%)
 rename website/{static/base => themes/initial}/img/depression-shadow-top.png (100%)
 rename website/{static/base => themes/initial}/img/dropdown-bg.png (100%)
 rename website/{static/base => themes/initial}/img/email-icon.png (100%)
 rename website/{static/base => themes/initial}/img/featured-box-bg.png (100%)
 rename website/{static/base => themes/initial}/img/feed-bg-white.png (100%)
 rename website/{static/base => themes/initial}/img/feed.png (100%)
 rename website/{static/base => themes/initial}/img/feed.svg (100%)
 rename website/{static/base => themes/initial}/img/h-separator-dark.png (100%)
 rename website/{static/base => themes/initial}/img/h-separator.png (100%)
 rename website/{static/base => themes/initial}/img/icon-set.svg (100%)
 rename website/{static/base => themes/initial}/img/icon.png (100%)
 rename website/{static/base => themes/initial}/img/icon.svg (100%)
 rename website/{static/base => themes/initial}/img/language-picker.svg (100%)
 rename website/{static/base => themes/initial}/img/library-icon.png (100%)
 rename website/{static/base => themes/initial}/img/link-arrow-shaper.svg (100%)
 rename website/{static/base => themes/initial}/img/link-arrow.png (100%)
 rename website/{static/base => themes/initial}/img/manual-icon.png (100%)
 rename website/{static/base => themes/initial}/img/manual-latest-icon.png (100%)
 rename website/{static/base => themes/initial}/img/menu-btn-bg.png (100%)
 rename website/{static/base => themes/initial}/img/menu-item-active-bg.png (100%)
 rename website/{static/base => themes/initial}/img/more-info-bg.png (100%)
 rename website/{static/base => themes/initial}/img/noise-bg.png (100%)
 rename website/{static/media => themes/initial}/img/playing-icon.svg (100%)
 rename website/{static/media => themes/initial}/img/playlist-icon.svg (100%)
 rename website/{static/packages => themes/initial}/img/red-tag.png (100%)
 rename website/{static/media => themes/initial}/img/scientific-mark.svg (100%)
 rename website/{static/base => themes/initial}/img/videos-icon.png (100%)
 rename website/{static/base => themes/initial}/img/white-star.png (100%)
 rename website/{static/base => themes/initial}/img/wiki-icon.png (100%)


base-commit: 3101f165670d0361ba85c218029c70d25b33b313

Comments

pelzflorian (Florian Pelz) March 15, 2024, 10:51 p.m. UTC | #1
Having pushed these two patches to guix-artwork and guix.git, I have one
humble request to the Guix maintainers (Cc):

This patch split static/ into static/ and themes/.  Could someone with
push access to maintenance.git make it so that hydra/nginx/berlin.scm
also emits cache HTTP headers for themes/ like it already does for
static/?

Pushed as f916cbb234e159f4730425c82d436a542f9288a8 with two changes:
* untabified,
* changed the static/base/fonts in .guix.scm as well.

Otherwise all rebuilds are automatic, I believe, and I hope we have not
wreaked much havoc.

Regards,
Florian
diff mbox series

Patch

diff --git a/website/apps/base/templates/about.scm b/website/apps/base/templates/about.scm
index 1cf2f65..68c8815 100644
--- a/website/apps/base/templates/about.scm
+++ b/website/apps/base/templates/about.scm
@@ -26,7 +26,7 @@ 
 system|GNU Hurd|GNU Guix package manager") #\|)
    #:active-menu-item (C_ "website menu" "About")
    #:css (list
-	  (guix-url "static/base/css/page.css"))
+	  (theme-url "css/page.css"))
    #:crumbs (list (crumb (C_ "website menu" "About") "./"))
    #:content
    `(main
diff --git a/website/apps/base/templates/components.scm b/website/apps/base/templates/components.scm
index 2a6881e..82f3b85 100644
--- a/website/apps/base/templates/components.scm
+++ b/website/apps/base/templates/components.scm
@@ -179,8 +179,8 @@ 
   `(img
     (@ (class "h-separator")
        ,(if light
-	    `(src ,(guix-url "static/base/img/h-separator.png"))
-	    `(src ,(guix-url "static/base/img/h-separator-dark.png")))
+	    `(src ,(theme-url "img/h-separator.png"))
+	    `(src ,(theme-url "img/h-separator-dark.png")))
        (alt ""))))
 
 (define (horizontal-skip)
@@ -191,7 +191,7 @@ 
   "Return SHTML for a visible separator to be used in a dropdown menu
 like a menu item."
   `(img (@ (class "hline")
-           (src ,(guix-url "static/base/img/h-separator.png"))
+           (src ,(theme-url "img/h-separator.png"))
            (alt ""))))
 
 
diff --git a/website/apps/base/templates/contact.scm b/website/apps/base/templates/contact.scm
index 49d8393..33d4abf 100644
--- a/website/apps/base/templates/contact.scm
+++ b/website/apps/base/templates/contact.scm
@@ -25,9 +25,9 @@  system|GNU Hurd|GNU Guix package manager|Community|Mailing lists|IRC \
 channels|Bug reports|Help") #\|)
    #:active-menu-item (C_ "website menu" "About")
    #:css (list
-	  (guix-url "static/base/css/page.css")
-          (guix-url "static/base/css/buttons.css")
-	  (guix-url "static/base/css/contact.css"))
+	  (theme-url "css/page.css")
+          (theme-url "css/buttons.css")
+	  (theme-url "css/contact.css"))
    #:crumbs (list (crumb (C_ "website menu" "Contact") "./"))
    #:content
    `(main
diff --git a/website/apps/base/templates/contribute.scm b/website/apps/base/templates/contribute.scm
index 42ffcb9..703267f 100644
--- a/website/apps/base/templates/contribute.scm
+++ b/website/apps/base/templates/contribute.scm
@@ -25,8 +25,8 @@  system|GNU Hurd|GNU Guix package manager|Volunteer|Development|\
 Translation|I18N|L10N|Artwork") #\|)
    #:active-menu-item (C_ "website menu" "About")
    #:css (list
-	  (guix-url "static/base/css/page.css")
-	  (guix-url "static/base/css/item-preview.css"))
+	  (theme-url "css/page.css")
+	  (theme-url "css/item-preview.css"))
    #:crumbs (list (crumb (C_ "website menu" "Contribute") "./"))
    #:content
    `(main
diff --git a/website/apps/base/templates/cuirass.scm b/website/apps/base/templates/cuirass.scm
index 00fe4b9..b421530 100644
--- a/website/apps/base/templates/cuirass.scm
+++ b/website/apps/base/templates/cuirass.scm
@@ -21,7 +21,7 @@ 
     (G_ "GNU|Linux|Unix|Free software|Libre software|Operating \
 system|GNU Guix package manager|Cuirass|CI") #\|)
    #:css (list
-          (guix-url "static/base/css/page.css"))
+          (theme-url "css/page.css"))
    #:content
    `(main
      (section
diff --git a/website/apps/base/templates/donate.scm b/website/apps/base/templates/donate.scm
index 5257a57..0a7d796 100644
--- a/website/apps/base/templates/donate.scm
+++ b/website/apps/base/templates/donate.scm
@@ -25,7 +25,7 @@ 
 system|GNU Hurd|GNU Guix package manager|Donations") #\|)
    #:active-menu-item (C_ "website menu" "Donate")
    #:css (list
-	  (guix-url "static/base/css/page.css"))
+	  (theme-url "css/page.css"))
    #:crumbs (list (crumb (C_ "website menu" "Donate") "./"))
    #:content
    `(main
diff --git a/website/apps/base/templates/graphics.scm b/website/apps/base/templates/graphics.scm
index befbb19..97bfe53 100644
--- a/website/apps/base/templates/graphics.scm
+++ b/website/apps/base/templates/graphics.scm
@@ -23,7 +23,7 @@ 
 system|GNU Hurd|GNU Guix package manager|Donations|Branding|Logo") #\|)
    #:active-menu-item (C_ "website menu" "About")
    #:css (list
-	  (guix-url "static/base/css/page.css"))
+	  (theme-url "css/page.css"))
    #:crumbs (list (crumb (C_ "website menu" "Graphics") "./"))
    #:content
    `(main
@@ -40,7 +40,7 @@  system|GNU Hurd|GNU Guix package manager|Donations|Branding|Logo") #\|)
           "."))
       (p
        (@ (class "centered-text"))
-       (img (@ (src ,(guix-url "static/base/img/Guix.png"))
+       (img (@ (src ,(theme-url "img/Guix.png"))
                ,(G_ `(alt "GNU Guix logotype")))))
       ,(G_
         `(p
diff --git a/website/apps/base/templates/help.scm b/website/apps/base/templates/help.scm
index 98bba39..4cacf49 100644
--- a/website/apps/base/templates/help.scm
+++ b/website/apps/base/templates/help.scm
@@ -27,8 +27,8 @@ 
 system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
    #:active-menu-item (C_ "website menu" "Help")
    #:css (list
-	  (guix-url "static/base/css/page.css")
-	  (guix-url "static/base/css/item-preview.css"))
+	  (theme-url "css/page.css")
+	  (theme-url "css/item-preview.css"))
    #:crumbs (list (crumb (C_ "website menu" "Help") "./"))
    #:content
    `(main
@@ -43,7 +43,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
        (div
 	(@ (class "summary-box"))
 	(img
-	 (@ (src ,(guix-url "static/base/img/manual-icon.png"))
+	 (@ (src ,(theme-url "img/manual-icon.png"))
 	    (alt "")))
         ,(G_ `(h3 "GNU Guix Manual " ,(latest-guix-version) ""))
         ,(G_
@@ -71,7 +71,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
        (div
 	(@ (class "summary-box"))
 	(img
-	 (@ (src ,(guix-url "static/base/img/manual-latest-icon.png"))
+	 (@ (src ,(theme-url "img/manual-latest-icon.png"))
 	    (alt "")))
         ,(G_ `(h3 "GNU Guix Manual (Latest)"))
         ,(G_
@@ -86,7 +86,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
 
        (div
         (@ (class "summary-box"))
-        (img (@ (src ,(guix-url "static/base/img/videos-icon.png"))
+        (img (@ (src ,(theme-url "img/videos-icon.png"))
                 (alt "")))
         ,(G_ `(h3 "Videos"))
         ,(G_
@@ -103,7 +103,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
 
        (div
         (@ (class "summary-box"))
-        (img (@ (src ,(guix-url "static/base/img/cookbook-icon.png"))
+        (img (@ (src ,(theme-url "img/cookbook-icon.png"))
                 (alt "")))
         ,(G_ `(h3 "Cookbook"))
         ,(G_
@@ -120,7 +120,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
 
        (div
 	(@ (class "summary-box"))
-	(img (@ (src ,(guix-url "static/base/img/library-icon.png"))
+	(img (@ (src ,(theme-url "img/library-icon.png"))
 		(alt "")))
         ,(G_ `(h3 "GNU Manuals"))
         ,(G_
@@ -137,7 +137,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
 
        (div
 	(@ (class "summary-box"))
-	(img (@ (src ,(guix-url "static/base/img/wiki-icon.png"))
+	(img (@ (src ,(theme-url "img/wiki-icon.png"))
 		(alt "")))
         ,(G_ `(h3 "Wiki"))
         ,(G_
@@ -155,7 +155,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
 
        (div
 	(@ (class "summary-box"))
-	(img (@ (src ,(guix-url "static/base/img/chat-icon.png"))
+	(img (@ (src ,(theme-url "img/chat-icon.png"))
 		(alt "")))
         ,(G_ `(h3 "IRC Chat"))
         ,(G_
@@ -176,7 +176,7 @@  system|GNU Hurd|GNU Guix package manager|Help resources") #\|)
 
        (div
 	(@ (class "summary-box"))
-	(img (@ (src ,(guix-url "static/base/img/email-icon.png"))
+	(img (@ (src ,(theme-url "img/email-icon.png"))
 		(alt "")))
         ,(G_ `(h3 "Mailing lists"))
         ,(G_
diff --git a/website/apps/base/templates/home.scm b/website/apps/base/templates/home.scm
index adddd91..aa1fbb5 100644
--- a/website/apps/base/templates/home.scm
+++ b/website/apps/base/templates/home.scm
@@ -32,9 +32,9 @@  Scheme|Transactional upgrades|Functional package \
 management|Reproducibility") #\|)
    #:active-menu-item (C_ "website menu" "Overview")
    #:css (list
-	  (guix-url "static/base/css/item-preview.css")
-	  (guix-url "static/base/css/index.css")
-          (guix-url "static/media/css/video-preview.css"))
+	  (theme-url "css/item-preview.css")
+	  (theme-url "css/index.css")
+          (theme-url "css/video-preview.css"))
    #:content
    `(main
      ;; Featured content.
diff --git a/website/apps/base/templates/irc.scm b/website/apps/base/templates/irc.scm
index 13b501f..05dc87a 100644
--- a/website/apps/base/templates/irc.scm
+++ b/website/apps/base/templates/irc.scm
@@ -23,7 +23,7 @@ 
     (G_ "GNU|Linux|Unix|Free software|Libre software|Operating \
 system|GNU Hurd|GNU Guix package manager|IRC|chat") #\|)
    #:active-menu-item "About"
-   #:css (list (guix-url "static/base/css/page.css"))
+   #:css (list (theme-url "css/page.css"))
    #:crumbs (list (crumb (C_ "webpage title" "Contact") (guix-url "contact/"))
 		  (crumb (C_ "webpage title" "IRC") "./"))
    #:content
diff --git a/website/apps/base/templates/menu.scm b/website/apps/base/templates/menu.scm
index 5b245f8..db17fc2 100644
--- a/website/apps/base/templates/menu.scm
+++ b/website/apps/base/templates/menu.scm
@@ -22,4 +22,4 @@  system|GNU Hurd|GNU Guix package manager|GNU Guile|Guile \
 Scheme|Transactional upgrades|Functional package \
 management|Reproducibility") #\|)
    #:active-menu-item (C_ "website menu" "Menu")
-   #:css (list (guix-url "static/base/css/menu.css"))))
+   #:css (list (theme-url "css/menu.css"))))
diff --git a/website/apps/base/templates/security.scm b/website/apps/base/templates/security.scm
index 8a72950..09dc5dc 100644
--- a/website/apps/base/templates/security.scm
+++ b/website/apps/base/templates/security.scm
@@ -30,7 +30,7 @@ 
 system|GNU Hurd|GNU Guix package manager|Security updates") #\|)
    #:active-menu-item (C_ "website menu" "About")
    #:css (list
-	  (guix-url "static/base/css/page.css"))
+	  (theme-url "css/page.css"))
    #:crumbs (list (crumb (C_ "website menu" "Security") "./"))
    #:content
    `(main
diff --git a/website/apps/base/templates/theme.scm b/website/apps/base/templates/theme.scm
index 5f5416f..d410fdc5 100644
--- a/website/apps/base/templates/theme.scm
+++ b/website/apps/base/templates/theme.scm
@@ -93,13 +93,13 @@ 
       ;; Menu prefetch.
       (link (@ (rel "prefetch") (href ,(guix-url "menu/index.html"))))
       ;; Base CSS.
-      (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/elements.css"))))
-      (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/common.css"))))
-      (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/messages.css"))))
-      (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/navbar.css"))))
-      (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/breadcrumbs.css"))))
-      (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/buttons.css"))))
-      (link (@ (rel "stylesheet") (href ,(guix-url "static/base/css/footer.css"))))
+      (link (@ (rel "stylesheet") (href ,(theme-url "css/elements.css"))))
+      (link (@ (rel "stylesheet") (href ,(theme-url "css/common.css"))))
+      (link (@ (rel "stylesheet") (href ,(theme-url "css/messages.css"))))
+      (link (@ (rel "stylesheet") (href ,(theme-url "css/navbar.css"))))
+      (link (@ (rel "stylesheet") (href ,(theme-url "css/breadcrumbs.css"))))
+      (link (@ (rel "stylesheet") (href ,(theme-url "css/buttons.css"))))
+      (link (@ (rel "stylesheet") (href ,(theme-url "css/footer.css"))))
       ;; Additional CSS.
       ,@(map (lambda (style-sheet)
 	       `(link (@ (rel "stylesheet") (href ,style-sheet))))
@@ -109,9 +109,9 @@ 
                (title ,(C_ "webpage title" "GNU Guix — Activity Feed"))
 	       (href ,(guix-url "feeds/blog.atom"))))
       (link (@ (rel "icon") (type "image/png")
-	       (href ,(guix-url "static/base/img/icon.png"))))
+	       (href ,(theme-url "img/icon.png"))))
       (link (@ (rel "icon") (type "image/svg+xml") (sizes "any")
-	       (href ,(guix-url "static/base/img/icon.svg"))))
+	       (href ,(theme-url "img/icon.svg"))))
       ;; Additional scripts.
       ,@(map (lambda (script)
 	       `(script (@ (src ,script)) ""))
diff --git a/website/apps/base/utils.scm b/website/apps/base/utils.scm
index bb520be..37ac434 100644
--- a/website/apps/base/utils.scm
+++ b/website/apps/base/utils.scm
@@ -42,7 +42,8 @@ 
             manual-url-with-language
 	    number*
 	    paginate
-            packages-url))
+            packages-url
+            theme-url))
 
 
 ;;;
@@ -65,6 +66,8 @@ 
            path
            (string-append path "/"))))))
 
+(define guix-website-theme "initial")  ; See "themes" directory.
+
 (define latest-guix-version
   (make-parameter "1.4.0"))
 
@@ -184,6 +187,21 @@  manual.
      A URL. For example: https://packages.guix.gnu.org/packages/guile/."
   (string-append "https://packages.guix.gnu.org/" path))
 
+(define (theme-url subpath)
+  "Return the URL to a given resource provided by the current website
+   theme (see 'guix-website-theme' variable).
+
+   SUBPATH (string)
+     Relative URL path to the resource. For example: 'css/buttons.css'.
+
+   RETURN VALUE (string)
+     Complete URL to the resource. For example:
+     'https://guix.gnu.org/themes/abc/css/buttons.css'."
+  (string-append (guix-root-url-path)
+                 "themes" "/"
+                 guix-website-theme "/"
+                 subpath))
+
 
 
 ;;;
diff --git a/website/apps/blog/templates/feed.scm b/website/apps/blog/templates/feed.scm
index 0702318..8284626 100644
--- a/website/apps/blog/templates/feed.scm
+++ b/website/apps/blog/templates/feed.scm
@@ -30,7 +30,7 @@ 
       (id ,id)
       (title ,title)
       (author (name (C_ "feed author name" "GNU Guix")) (uri ,domain))
-      (icon ,(guix-url "static/base/img/icon.png"))
+      (icon ,(theme-url "img/icon.png"))
       (updated ,(date->string (current-date) "~4"))
       (link (@ (rel "alternate") (href ,alternate)))
 
diff --git a/website/apps/blog/templates/post-list.scm b/website/apps/blog/templates/post-list.scm
index acffce1..6bf81d1 100644
--- a/website/apps/blog/templates/post-list.scm
+++ b/website/apps/blog/templates/post-list.scm
@@ -33,9 +33,9 @@  management|Reproducibility") #\|)
      #:index? #false
      #:active-menu-item (C_ "website menu" "Blog")
      #:css
-     (list (guix-url "static/base/css/page.css")
-	   (guix-url "static/base/css/item-preview.css")
-	   (guix-url "static/base/css/sidebar.css"))
+     (list (theme-url "css/page.css")
+	   (theme-url "css/item-preview.css")
+	   (theme-url "css/sidebar.css"))
      #:crumbs
      (list (crumb (C_ "website menu" "Blog") (guix-url "blog/"))
            (crumb (G_ (string-append "Page " page-number ""))
diff --git a/website/apps/blog/templates/post.scm b/website/apps/blog/templates/post.scm
index 0e6ad0d..5183d5b 100644
--- a/website/apps/blog/templates/post.scm
+++ b/website/apps/blog/templates/post.scm
@@ -29,9 +29,9 @@ 
      #:keywords tags
      #:active-menu-item (C_ "website menu" "Blog")
      #:css
-     (list (guix-url "static/base/css/page.css")
-	   (guix-url "static/base/css/code.css")
-	   (guix-url "static/blog/css/post.css"))
+     (list (theme-url "css/page.css")
+	   (theme-url "css/code.css")
+	   (theme-url "css/post.css"))
      #:crumbs
      (list (crumb (C_ "website menu" "Blog") (guix-url "blog/"))
 	   (crumb (post-ref post 'title)
diff --git a/website/apps/blog/templates/tag.scm b/website/apps/blog/templates/tag.scm
index 0145e63..92b9ee3 100644
--- a/website/apps/blog/templates/tag.scm
+++ b/website/apps/blog/templates/tag.scm
@@ -37,9 +37,9 @@  management|Reproducibility") #\|)
      #:index? #false
      #:active-menu-item (C_ "website menu" "Blog")
      #:css
-     (list (guix-url "static/base/css/page.css")
-	   (guix-url "static/base/css/item-preview.css")
-	   (guix-url "static/base/css/sidebar.css"))
+     (list (theme-url "css/page.css")
+	   (theme-url "css/item-preview.css")
+	   (theme-url "css/sidebar.css"))
      #:crumbs
      (list (crumb (C_ "website menu" "Blog") (guix-url "blog/"))
 	   (crumb tag (guix-url (tag-url-path tag)))
diff --git a/website/apps/download/templates/download-latest.scm b/website/apps/download/templates/download-latest.scm
index cdcecb7..87e3cfa 100644
--- a/website/apps/download/templates/download-latest.scm
+++ b/website/apps/download/templates/download-latest.scm
@@ -155,8 +155,8 @@  system|GNU Hurd|GNU Guix package manager|Installer|Source code|\
 Package manager") #\|)
    #:active-menu-item (C_ "website menu" "Download")
    #:css (list
-          (guix-url "static/base/css/page.css")
-          (guix-url "static/base/css/download.css"))
+          (theme-url "css/page.css")
+          (theme-url "css/download.css"))
    #:crumbs
    (list (crumb (C_ "website menu" "Download") (guix-url "download/"))
          (crumb (C_ "website menu" "Latest") "./"))
diff --git a/website/apps/download/templates/download.scm b/website/apps/download/templates/download.scm
index 4ee8e3b..58500b4 100644
--- a/website/apps/download/templates/download.scm
+++ b/website/apps/download/templates/download.scm
@@ -42,8 +42,8 @@  system|GNU Hurd|GNU Guix package manager|Installer|Source code|\
 Package manager") #\|)
    #:active-menu-item (C_ "website menu" "Download")
    #:css (list
-	  (guix-url "static/base/css/page.css")
-	  (guix-url "static/base/css/download.css"))
+	  (theme-url "css/page.css")
+	  (theme-url "css/download.css"))
    #:crumbs (list (crumb (C_ "website menu" "Download") "./"))
    #:content
    `(main
diff --git a/website/apps/media/templates/components.scm b/website/apps/media/templates/components.scm
index 8bedc9f..2c0f551 100644
--- a/website/apps/media/templates/components.scm
+++ b/website/apps/media/templates/components.scm
@@ -61,7 +61,7 @@ 
        (@ (class "playlist-title"))
 
        (img (@ (class "playlist-icon")
-               (src ,(guix-url "static/media/img/playlist-icon.svg"))
+               (src ,(theme-url "img/playlist-icon.svg"))
                (alt ,(G_ "Playlist: "))
                (title ,(G_ "Playlist"))))
        " "
@@ -94,7 +94,7 @@ 
        ,(if (publication-scientific? publication)
             `((img
                (@ (class "scientific-mark")
-                  (src ,(guix-url "static/media/img/scientific-mark.svg"))
+                  (src ,(theme-url "img/scientific-mark.svg"))
                   ;; TRANSLATORS: This is a tag that indicates a
                   ;; publication is scientific.
                   (alt ,(G_ "[Scientific]"))
@@ -182,7 +182,7 @@  top."
 
        ,(if playing?
             `((img (@ (class "playing-icon")
-                      (src ,(guix-url "static/media/img/playing-icon.svg"))
+                      (src ,(theme-url "img/playing-icon.svg"))
 
                       (alt
                        ;; TRANSLATORS: Alternative text indicating that
diff --git a/website/apps/media/templates/publication-list.scm b/website/apps/media/templates/publication-list.scm
index bcc5744..2ef666a 100644
--- a/website/apps/media/templates/publication-list.scm
+++ b/website/apps/media/templates/publication-list.scm
@@ -27,8 +27,8 @@ 
    (string-split (G_ "Publications|Papers") #\|)
    #:active-menu-item (C_ "website menu" "Publications")
    #:css (list
-	  (guix-url "static/base/css/page.css")
-	  (guix-url "static/media/css/publications.css"))
+	  (theme-url "css/page.css")
+	  (theme-url "css/publications.css"))
    #:crumbs (list (crumb (C_ "website menu" "Publications") "./"))
    #:content
    `(main
diff --git a/website/apps/media/templates/screenshot.scm b/website/apps/media/templates/screenshot.scm
index b2d42b8..a942ef6 100644
--- a/website/apps/media/templates/screenshot.scm
+++ b/website/apps/media/templates/screenshot.scm
@@ -26,8 +26,8 @@  system|GNU Hurd|GNU Guix package manager|GNU Guile|Guile \
 Scheme|Transactional upgrades|Functional package \
 management|Reproducibility") #\|)
      #:active-menu-item (C_ "website menu" "Media")
-     #:css (list (guix-url "static/base/css/index.css")
-                 (guix-url "static/media/css/screenshots.css"))
+     #:css (list (theme-url "css/index.css")
+                 (theme-url "css/screenshots.css"))
      #:content
      `(main
        (section
diff --git a/website/apps/media/templates/screenshots-overview.scm b/website/apps/media/templates/screenshots-overview.scm
index 04a9fc6..7663ad9 100644
--- a/website/apps/media/templates/screenshots-overview.scm
+++ b/website/apps/media/templates/screenshots-overview.scm
@@ -23,7 +23,7 @@  system|GNU Hurd|GNU Guix package manager|GNU Guile|Guile \
 Scheme|Transactional upgrades|Functional package \
 management|Reproducibility") #\|)
    #:active-menu-item (C_ "website menu" "Media")
-   #:css (list (guix-url "static/base/css/index.css"))
+   #:css (list (theme-url "css/index.css"))
    #:content
    `(main
      (section
diff --git a/website/apps/media/templates/video-list.scm b/website/apps/media/templates/video-list.scm
index 676abba..91e56fe 100644
--- a/website/apps/media/templates/video-list.scm
+++ b/website/apps/media/templates/video-list.scm
@@ -33,8 +33,8 @@ 
 system|GNU Hurd|GNU Guix package manager|Help resources|Videos") #\|)
      #:active-menu-item (C_ "website menu" "Videos")
      #:css (list
-            (guix-url "static/media/css/video-list.css")
-            (guix-url "static/media/css/video-preview.css"))
+            (theme-url "css/video-list.css")
+            (theme-url "css/video-preview.css"))
      #:crumbs (list (crumb (C_ "website menu" "Videos") (guix-url "videos/")))
      #:content
      `(main
diff --git a/website/apps/media/templates/video.scm b/website/apps/media/templates/video.scm
index cb74207..8bb76f9 100644
--- a/website/apps/media/templates/video.scm
+++ b/website/apps/media/templates/video.scm
@@ -45,8 +45,8 @@ 
 system|GNU Hurd|GNU Guix package manager|Help resources|Videos") #\|)
      #:active-menu-item (C_ "website menu" "Videos")
      #:css (list
-            (guix-url "static/media/css/video.css")
-            (guix-url "static/media/css/video-preview.css"))
+            (theme-url "css/video.css")
+            (theme-url "css/video-preview.css"))
      #:crumbs (list (crumb (C_ "website menu" "Videos") (guix-url "videos/"))
                     (crumb (video-title video) "./"))
      #:content
diff --git a/website/haunt.scm b/website/haunt.scm
index 455bdc8..34f69cc 100644
--- a/website/haunt.scm
+++ b/website/haunt.scm
@@ -24,4 +24,5 @@ 
                         blog:builder
                         download:builder
                         media:builder
+                        (static-directory "themes")
                         (static-directory "static"))))
diff --git a/website/static/base/img/GuixSD-logo.png b/website/static/base/img/GuixSD-logo.png
deleted file mode 100644
index 4e520dbf1a21d9c90990758305e57ad5d3201e4b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 6785
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

diff --git a/website/themes/README.org b/website/themes/README.org
new file mode 100644
index 0000000..7f477d0
--- /dev/null
+++ b/website/themes/README.org
@@ -0,0 +1,6 @@ 
+#+TITLE: Themes
+
+This directory contains themes for Guix websites and other themable
+artifacts. Themes are folders containing style sheets, fonts, images,
+and other assets that define the visual, aural and haptic identity of
+the artifacts.
diff --git a/website/static/base/css/breadcrumbs.css b/website/themes/initial/css/breadcrumbs.css
similarity index 100%
rename from website/static/base/css/breadcrumbs.css
rename to website/themes/initial/css/breadcrumbs.css
diff --git a/website/static/base/css/buttons.css b/website/themes/initial/css/buttons.css
similarity index 100%
rename from website/static/base/css/buttons.css
rename to website/themes/initial/css/buttons.css
diff --git a/website/static/base/css/code.css b/website/themes/initial/css/code.css
similarity index 100%
rename from website/static/base/css/code.css
rename to website/themes/initial/css/code.css
diff --git a/website/static/base/css/common.css b/website/themes/initial/css/common.css
similarity index 100%
rename from website/static/base/css/common.css
rename to website/themes/initial/css/common.css
diff --git a/website/static/base/css/contact.css b/website/themes/initial/css/contact.css
similarity index 100%
rename from website/static/base/css/contact.css
rename to website/themes/initial/css/contact.css
diff --git a/website/static/base/css/download.css b/website/themes/initial/css/download.css
similarity index 100%
rename from website/static/base/css/download.css
rename to website/themes/initial/css/download.css
diff --git a/website/static/base/css/elements.css b/website/themes/initial/css/elements.css
similarity index 100%
rename from website/static/base/css/elements.css
rename to website/themes/initial/css/elements.css
diff --git a/website/static/base/css/footer.css b/website/themes/initial/css/footer.css
similarity index 100%
rename from website/static/base/css/footer.css
rename to website/themes/initial/css/footer.css
diff --git a/website/static/base/css/index.css b/website/themes/initial/css/index.css
similarity index 100%
rename from website/static/base/css/index.css
rename to website/themes/initial/css/index.css
diff --git a/website/static/base/css/item-preview.css b/website/themes/initial/css/item-preview.css
similarity index 100%
rename from website/static/base/css/item-preview.css
rename to website/themes/initial/css/item-preview.css
diff --git a/website/static/packages/css/letter-selector.css b/website/themes/initial/css/letter-selector.css
similarity index 100%
rename from website/static/packages/css/letter-selector.css
rename to website/themes/initial/css/letter-selector.css
diff --git a/website/static/base/css/manual.css b/website/themes/initial/css/manual.css
similarity index 100%
rename from website/static/base/css/manual.css
rename to website/themes/initial/css/manual.css
diff --git a/website/static/base/css/menu.css b/website/themes/initial/css/menu.css
similarity index 100%
rename from website/static/base/css/menu.css
rename to website/themes/initial/css/menu.css
diff --git a/website/static/base/css/messages.css b/website/themes/initial/css/messages.css
similarity index 100%
rename from website/static/base/css/messages.css
rename to website/themes/initial/css/messages.css
diff --git a/website/static/base/css/navbar.css b/website/themes/initial/css/navbar.css
similarity index 100%
rename from website/static/base/css/navbar.css
rename to website/themes/initial/css/navbar.css
diff --git a/website/static/packages/css/package-list.css b/website/themes/initial/css/package-list.css
similarity index 100%
rename from website/static/packages/css/package-list.css
rename to website/themes/initial/css/package-list.css
diff --git a/website/static/packages/css/package.css b/website/themes/initial/css/package.css
similarity index 100%
rename from website/static/packages/css/package.css
rename to website/themes/initial/css/package.css
diff --git a/website/static/base/css/page.css b/website/themes/initial/css/page.css
similarity index 100%
rename from website/static/base/css/page.css
rename to website/themes/initial/css/page.css
diff --git a/website/static/blog/css/post.css b/website/themes/initial/css/post.css
similarity index 100%
rename from website/static/blog/css/post.css
rename to website/themes/initial/css/post.css
diff --git a/website/static/media/css/publications.css b/website/themes/initial/css/publications.css
similarity index 92%
rename from website/static/media/css/publications.css
rename to website/themes/initial/css/publications.css
index 11a8542..a4d8abe 100644
--- a/website/static/media/css/publications.css
+++ b/website/themes/initial/css/publications.css
@@ -18,7 +18,7 @@ 
 .publication-preview:focus,
 .publication-preview:hover {
     background-color: gold;
-    background-image: url("/static/base/img/link-arrow-shaper.svg");
+    background-image: url("/themes/initial/img/link-arrow-shaper.svg");
     background-position: right;
     background-repeat: no-repeat;
     background-size: auto 100%;
diff --git a/website/static/media/css/screenshots.css b/website/themes/initial/css/screenshots.css
similarity index 100%
rename from website/static/media/css/screenshots.css
rename to website/themes/initial/css/screenshots.css
diff --git a/website/static/base/css/sidebar.css b/website/themes/initial/css/sidebar.css
similarity index 96%
rename from website/static/base/css/sidebar.css
rename to website/themes/initial/css/sidebar.css
index 12ed90e..c3c278b 100644
--- a/website/static/base/css/sidebar.css
+++ b/website/themes/initial/css/sidebar.css
@@ -55,7 +55,7 @@ 
 }
 
 .feed-link {
-    background-image: url("/static/base/img/feed-bg-white.png");
+    background-image: url("/themes/initial/img/feed-bg-white.png");
     background-position: bottom left;
     background-repeat: no-repeat;
 }
diff --git a/website/static/media/css/video-list.css b/website/themes/initial/css/video-list.css
similarity index 100%
rename from website/static/media/css/video-list.css
rename to website/themes/initial/css/video-list.css
diff --git a/website/static/media/css/video-preview.css b/website/themes/initial/css/video-preview.css
similarity index 100%
rename from website/static/media/css/video-preview.css
rename to website/themes/initial/css/video-preview.css
diff --git a/website/static/media/css/video.css b/website/themes/initial/css/video.css
similarity index 100%
rename from website/static/media/css/video.css
rename to website/themes/initial/css/video.css
diff --git a/website/static/base/img/Guix-logo.png b/website/themes/initial/img/Guix-logo.png
similarity index 100%
rename from website/static/base/img/Guix-logo.png
rename to website/themes/initial/img/Guix-logo.png
diff --git a/website/static/base/img/Guix.png b/website/themes/initial/img/Guix.png
similarity index 100%
rename from website/static/base/img/Guix.png
rename to website/themes/initial/img/Guix.png
diff --git a/website/static/base/img/back-btn-bg.png b/website/themes/initial/img/back-btn-bg.png
similarity index 100%
rename from website/static/base/img/back-btn-bg.png
rename to website/themes/initial/img/back-btn-bg.png
diff --git a/website/static/base/img/breadcrumbs-bg.png b/website/themes/initial/img/breadcrumbs-bg.png
similarity index 100%
rename from website/static/base/img/breadcrumbs-bg.png
rename to website/themes/initial/img/breadcrumbs-bg.png
diff --git a/website/static/base/img/chat-icon.png b/website/themes/initial/img/chat-icon.png
similarity index 100%
rename from website/static/base/img/chat-icon.png
rename to website/themes/initial/img/chat-icon.png
diff --git a/website/static/base/img/checkerboard-bg.png b/website/themes/initial/img/checkerboard-bg.png
similarity index 100%
rename from website/static/base/img/checkerboard-bg.png
rename to website/themes/initial/img/checkerboard-bg.png
diff --git a/website/static/base/img/cookbook-icon.png b/website/themes/initial/img/cookbook-icon.png
similarity index 100%
rename from website/static/base/img/cookbook-icon.png
rename to website/themes/initial/img/cookbook-icon.png
diff --git a/website/static/base/img/depression-shadow-top.png b/website/themes/initial/img/depression-shadow-top.png
similarity index 100%
rename from website/static/base/img/depression-shadow-top.png
rename to website/themes/initial/img/depression-shadow-top.png
diff --git a/website/static/base/img/dropdown-bg.png b/website/themes/initial/img/dropdown-bg.png
similarity index 100%
rename from website/static/base/img/dropdown-bg.png
rename to website/themes/initial/img/dropdown-bg.png
diff --git a/website/static/base/img/email-icon.png b/website/themes/initial/img/email-icon.png
similarity index 100%
rename from website/static/base/img/email-icon.png
rename to website/themes/initial/img/email-icon.png
diff --git a/website/static/base/img/featured-box-bg.png b/website/themes/initial/img/featured-box-bg.png
similarity index 100%
rename from website/static/base/img/featured-box-bg.png
rename to website/themes/initial/img/featured-box-bg.png
diff --git a/website/static/base/img/feed-bg-white.png b/website/themes/initial/img/feed-bg-white.png
similarity index 100%
rename from website/static/base/img/feed-bg-white.png
rename to website/themes/initial/img/feed-bg-white.png
diff --git a/website/static/base/img/feed.png b/website/themes/initial/img/feed.png
similarity index 100%
rename from website/static/base/img/feed.png
rename to website/themes/initial/img/feed.png
diff --git a/website/static/base/img/feed.svg b/website/themes/initial/img/feed.svg
similarity index 100%
rename from website/static/base/img/feed.svg
rename to website/themes/initial/img/feed.svg
diff --git a/website/static/base/img/h-separator-dark.png b/website/themes/initial/img/h-separator-dark.png
similarity index 100%
rename from website/static/base/img/h-separator-dark.png
rename to website/themes/initial/img/h-separator-dark.png
diff --git a/website/static/base/img/h-separator.png b/website/themes/initial/img/h-separator.png
similarity index 100%
rename from website/static/base/img/h-separator.png
rename to website/themes/initial/img/h-separator.png
diff --git a/website/static/base/img/icon-set.svg b/website/themes/initial/img/icon-set.svg
similarity index 100%
rename from website/static/base/img/icon-set.svg
rename to website/themes/initial/img/icon-set.svg
diff --git a/website/static/base/img/icon.png b/website/themes/initial/img/icon.png
similarity index 100%
rename from website/static/base/img/icon.png
rename to website/themes/initial/img/icon.png
diff --git a/website/static/base/img/icon.svg b/website/themes/initial/img/icon.svg
similarity index 100%
rename from website/static/base/img/icon.svg
rename to website/themes/initial/img/icon.svg
diff --git a/website/static/base/img/language-picker.svg b/website/themes/initial/img/language-picker.svg
similarity index 100%
rename from website/static/base/img/language-picker.svg
rename to website/themes/initial/img/language-picker.svg
diff --git a/website/static/base/img/library-icon.png b/website/themes/initial/img/library-icon.png
similarity index 100%
rename from website/static/base/img/library-icon.png
rename to website/themes/initial/img/library-icon.png
diff --git a/website/static/base/img/link-arrow-shaper.svg b/website/themes/initial/img/link-arrow-shaper.svg
similarity index 100%
rename from website/static/base/img/link-arrow-shaper.svg
rename to website/themes/initial/img/link-arrow-shaper.svg
diff --git a/website/static/base/img/link-arrow.png b/website/themes/initial/img/link-arrow.png
similarity index 100%
rename from website/static/base/img/link-arrow.png
rename to website/themes/initial/img/link-arrow.png
diff --git a/website/static/base/img/manual-icon.png b/website/themes/initial/img/manual-icon.png
similarity index 100%
rename from website/static/base/img/manual-icon.png
rename to website/themes/initial/img/manual-icon.png
diff --git a/website/static/base/img/manual-latest-icon.png b/website/themes/initial/img/manual-latest-icon.png
similarity index 100%
rename from website/static/base/img/manual-latest-icon.png
rename to website/themes/initial/img/manual-latest-icon.png
diff --git a/website/static/base/img/menu-btn-bg.png b/website/themes/initial/img/menu-btn-bg.png
similarity index 100%
rename from website/static/base/img/menu-btn-bg.png
rename to website/themes/initial/img/menu-btn-bg.png
diff --git a/website/static/base/img/menu-item-active-bg.png b/website/themes/initial/img/menu-item-active-bg.png
similarity index 100%
rename from website/static/base/img/menu-item-active-bg.png
rename to website/themes/initial/img/menu-item-active-bg.png
diff --git a/website/static/base/img/more-info-bg.png b/website/themes/initial/img/more-info-bg.png
similarity index 100%
rename from website/static/base/img/more-info-bg.png
rename to website/themes/initial/img/more-info-bg.png
diff --git a/website/static/base/img/noise-bg.png b/website/themes/initial/img/noise-bg.png
similarity index 100%
rename from website/static/base/img/noise-bg.png
rename to website/themes/initial/img/noise-bg.png
diff --git a/website/static/media/img/playing-icon.svg b/website/themes/initial/img/playing-icon.svg
similarity index 100%
rename from website/static/media/img/playing-icon.svg
rename to website/themes/initial/img/playing-icon.svg
diff --git a/website/static/media/img/playlist-icon.svg b/website/themes/initial/img/playlist-icon.svg
similarity index 100%
rename from website/static/media/img/playlist-icon.svg
rename to website/themes/initial/img/playlist-icon.svg
diff --git a/website/static/packages/img/red-tag.png b/website/themes/initial/img/red-tag.png
similarity index 100%
rename from website/static/packages/img/red-tag.png
rename to website/themes/initial/img/red-tag.png
diff --git a/website/static/media/img/scientific-mark.svg b/website/themes/initial/img/scientific-mark.svg
similarity index 100%
rename from website/static/media/img/scientific-mark.svg
rename to website/themes/initial/img/scientific-mark.svg
diff --git a/website/static/base/img/videos-icon.png b/website/themes/initial/img/videos-icon.png
similarity index 100%
rename from website/static/base/img/videos-icon.png
rename to website/themes/initial/img/videos-icon.png
diff --git a/website/static/base/img/white-star.png b/website/themes/initial/img/white-star.png
similarity index 100%
rename from website/static/base/img/white-star.png
rename to website/themes/initial/img/white-star.png
diff --git a/website/static/base/img/wiki-icon.png b/website/themes/initial/img/wiki-icon.png
similarity index 100%
rename from website/static/base/img/wiki-icon.png
rename to website/themes/initial/img/wiki-icon.png