diff --git a/README.md b/README.md index 51d1b73..8c10587 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,16 @@ $config['skin'] = 'eternity-classic'; Both variants use their own Eternity Project logo and browser icon. They are intended for Roundcube 1.6 installations where the matching legacy base skin is available. +### Eternity Larry Wasteland + +`eternity-larry-wasteland` is the dark Larry variant using the Wasteland palette from `docker-ep-blog-web-server/themes`: charcoal surfaces, parchment text, olive selected states, rust-orange accents, and the technical-grid background. + +It requires the Larry base skin, installed as described above, then activates with: + +```php +$config['skin'] = 'eternity-larry-wasteland'; +``` + ## Docker Install ### Docker Compose (persistent) @@ -194,6 +204,13 @@ eternity-larry/ images/ Eternity Project logo and browser icon meta.json Larry child-skin registration styles.css Larry import and Eternity legacy UI overrides +eternity-larry-wasteland/ + images/ Wasteland logo, browser icon, and preview watermark + includes/links.html Larry shared asset links and browser icon + mail.css Larry mail stylesheet import + meta.json Larry Wasteland child-skin registration + styles.css Wasteland palette and Larry UI overrides + watermark.html Dark Wasteland preview background eternity-classic/ images/ Eternity Project logo and browser icon common.css Classic common UI import and Eternity overrides diff --git a/eternity-larry-wasteland/images/favicon.svg b/eternity-larry-wasteland/images/favicon.svg new file mode 100644 index 0000000..693a8ac --- /dev/null +++ b/eternity-larry-wasteland/images/favicon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/eternity-larry-wasteland/images/logo.svg b/eternity-larry-wasteland/images/logo.svg new file mode 100644 index 0000000..aee99d9 --- /dev/null +++ b/eternity-larry-wasteland/images/logo.svg @@ -0,0 +1,10 @@ + + + + + + + + ETERNITY + PROJECT / FI + \ No newline at end of file diff --git a/eternity-larry-wasteland/images/watermark.svg b/eternity-larry-wasteland/images/watermark.svg new file mode 100644 index 0000000..e0798c0 --- /dev/null +++ b/eternity-larry-wasteland/images/watermark.svg @@ -0,0 +1,10 @@ + + + + + + + + ETERNITY + PROJECT / FI + \ No newline at end of file diff --git a/eternity-larry-wasteland/includes/links.html b/eternity-larry-wasteland/includes/links.html new file mode 100644 index 0000000..5fc056e --- /dev/null +++ b/eternity-larry-wasteland/includes/links.html @@ -0,0 +1,13 @@ + + + + + + + +.css" /> + + + + + \ No newline at end of file diff --git a/eternity-larry-wasteland/mail.css b/eternity-larry-wasteland/mail.css new file mode 100644 index 0000000..a250812 --- /dev/null +++ b/eternity-larry-wasteland/mail.css @@ -0,0 +1,45 @@ +@import "../larry/mail.css"; + +#mailboxcontainer, +#folderlist-content, +#folderlist-footer, +#messagelistcontainer, +#messagelistheader, +#messagelistfooter, +#mailview-left, +#mailview-right { + background: var(--field); + border-color: var(--line); + color: var(--ink); +} + +#messagelistheader, +#messagelistfooter { + background: var(--field) !important; + border-color: var(--line) !important; +} + +#messagelistheader a, +#messagelistfooter a, +#folderlist-footer a { + color: var(--ink); +} + +#messagelistheader a:hover, +#messagelistfooter a:hover, +#folderlist-footer a:hover { + background: var(--acid); + color: var(--paper); +} + +#mailboxmenulink.listbutton.groupactions { + background: var(--field); + border-color: var(--line); + color: var(--ink); +} + +#mailboxmenulink.listbutton.groupactions:hover { + background: var(--acid); + border-color: var(--acid); + color: var(--paper); +} \ No newline at end of file diff --git a/eternity-larry-wasteland/meta.json b/eternity-larry-wasteland/meta.json new file mode 100644 index 0000000..9f20a5e --- /dev/null +++ b/eternity-larry-wasteland/meta.json @@ -0,0 +1,13 @@ +{ + "name": "Eternity Larry Wasteland", + "author": "Eternity Project", + "license": "GNU Affero General Public License", + "version": "1.0.0", + "extends": "larry", + "localization": false, + "config": { + "product_name": "eternityproject.fi", + "skin_logo": "skins/eternity-larry-wasteland/images/logo.svg", + "skin_favicon": "skins/eternity-larry-wasteland/images/favicon.svg" + } +} \ No newline at end of file diff --git a/eternity-larry-wasteland/styles.css b/eternity-larry-wasteland/styles.css new file mode 100644 index 0000000..54c8f20 --- /dev/null +++ b/eternity-larry-wasteland/styles.css @@ -0,0 +1,160 @@ +@import "../larry/styles.css"; + +:root { + --ink: #e7e2d3; + --paper: #161210; + --acid: #8fae3d; + --orange: #e4632c; + --line: #4a3f33; + --muted: #a89a86; + --field: #211b17; +} + +html, +body, +#mainscreen, +#layout, +#main-menu, +#taskbar, +#mailboxlist, +#messagelist, +#messageframe { + background: var(--paper); + color: var(--ink); +} + +body { + font-family: "Space Grotesk", "Helvetica Neue", sans-serif; + background-image: linear-gradient(90deg, transparent 49.5%, rgb(228 98 44 / 7%) 50%, transparent 50.5%), linear-gradient(rgb(228 98 44 / 5%) 1px, transparent 1px); + background-size: 70px 70px, 7px 7px; +} + +body::after { + content: ""; + position: fixed; + inset: 0; + z-index: -1; + pointer-events: none; + background-image: radial-gradient(circle at 12% 20%, rgb(143 174 61 / 12%), transparent 35%), radial-gradient(circle at 85% 75%, rgb(228 98 44 / 14%), transparent 40%); +} + +a, +#taskbar a, +#mailboxlist li a, +#messagelist tr td { + color: var(--ink); +} + +a:hover, +#taskbar a:hover, +#mailboxlist li a:hover { + color: var(--orange); +} + +#taskbar, +#mailboxlist, +#messagelist, +#messagelist-header, +#mailboxlist-header, +.box, +.boxcontent, +.popupmenu, +.menu, +.toolbar { + border-color: var(--line); + box-shadow: none; +} + +#taskbar a.selected, +#taskbar a:hover, +#mailboxlist li.selected > a, +#mailboxlist li a:hover, +#messagelist tr:hover td { + background: var(--acid); + color: var(--paper); +} + +#messagelist tr.selected td { + background: var(--ink); + color: var(--paper); +} + +input[type="text"], +input[type="password"], +textarea, +select { + border: 1px solid var(--line); + border-radius: 0; + box-shadow: none; + background: var(--field); + color: var(--ink); +} + +input:focus, +textarea:focus, +select:focus { + outline: 3px solid var(--acid); + outline-offset: 1px; +} + +input[type="submit"], +input[type="button"], +button, +.button, +.toolbar .button { + border: 1px solid var(--ink); + border-radius: 0; + box-shadow: none; + background: var(--ink); + color: var(--paper); + font-family: "DM Mono", "Courier New", monospace; +} + +input[type="submit"]:hover, +input[type="button"]:hover, +button:hover, +.button:hover, +.toolbar .button:hover { + background: var(--acid); + color: var(--paper); +} + +#login-form, +#login-form .box-inner, +#login-form .boxcontent { + border-color: var(--line); + border-radius: 0; + box-shadow: none; + background: var(--paper); +} + +#login-form #logo { + max-width: 260px; + height: auto; +} + +#toplogo { + display: block; + width: 180px; + max-width: calc(100% - 40px); + height: auto; + max-height: 36px; + margin: 8px 12px; +} + +#topnav { + background: var(--paper); + border-bottom: 1px solid var(--line); +} + +#taskbar a.button-selected, +#taskbar a.button-selected:hover { + background: var(--acid); + border-color: var(--acid); + color: var(--paper); +} + +#taskbar a.button-selected::before, +#taskbar a.button-selected:hover::before { + color: var(--paper); +} \ No newline at end of file diff --git a/eternity-larry-wasteland/watermark.html b/eternity-larry-wasteland/watermark.html new file mode 100644 index 0000000..f2fa99f --- /dev/null +++ b/eternity-larry-wasteland/watermark.html @@ -0,0 +1,31 @@ + + + + + + + + + \ No newline at end of file diff --git a/eternity-larry/styles.css b/eternity-larry/styles.css index d79faa0..f2d3e95 100644 --- a/eternity-larry/styles.css +++ b/eternity-larry/styles.css @@ -131,4 +131,21 @@ button:hover, height: auto; max-height: 36px; margin: 8px 12px; +} + +#topnav { + background: var(--paper); + border-bottom: 1px solid var(--ink); +} + +#taskbar a.button-selected, +#taskbar a.button-selected:hover { + background: var(--acid); + border-color: var(--acid); + color: var(--ink); +} + +#taskbar a.button-selected::before, +#taskbar a.button-selected:hover::before { + color: var(--ink); } \ No newline at end of file