From 26c699ca92cea4e22199d604da221f668fcece39 Mon Sep 17 00:00:00 2001 From: gerjanvangeest Date: Tue, 1 Jul 2025 17:01:08 +0200 Subject: [PATCH] chore: update portal styling --- public/styles/lion/layout.css | 21 +- public/styles/lion/markdown.css | 3 +- public/styles/lion/variables.css | 87 +++------ src/components/ui-portal-footer.js | 8 +- src/components/ui-portal-main-nav.js | 280 ++++++++++++++++----------- src/pages/index.astro | 2 +- 6 files changed, 216 insertions(+), 185 deletions(-) diff --git a/public/styles/lion/layout.css b/public/styles/lion/layout.css index 65a1595dd..e942ac682 100644 --- a/public/styles/lion/layout.css +++ b/public/styles/lion/layout.css @@ -11,7 +11,7 @@ body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; font-size: 16px; - color: var(--text-color); + color: var(--primary-text-color); background-color: var(--page-background); display: flex; flex-flow: column; @@ -149,14 +149,14 @@ body[data-layout='layout-home'] #main-header { #main-header a { text-decoration: none; - color: var(--text-color); + color: var(--primary-text-color); transition: color 0.3s ease-in-out; font-weight: bold; order: 2; } #main-header a:hover { - color: var(--secondary-color-lighter); + color: var(--primary-color); } body[data-layout='layout-home'] #main-header a:hover { @@ -274,7 +274,7 @@ rocket-navigation .light-dark-switch::part(label) { rocket-navigation a { text-decoration: none; - color: var(--text-color); + color: var(--primary-text-color); } rocket-navigation a:hover { @@ -286,7 +286,7 @@ rocket-navigation > ul > li > ul li.current ul li.anchor.current::before { content: ''; height: 1.6em; width: 3px; - background: var(--secondary-color); + background: var(--primary-color); position: absolute; left: 0; margin-top: -2px; @@ -358,7 +358,7 @@ rocket-navigation > ul { /* same as header */ box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); - color: var(--text-color); + color: var(--primary-text-color); font-weight: bold; } @@ -511,6 +511,7 @@ main > * { font-weight: bold; vertical-align: middle; padding: 8px 24px; + border: 1px solid var(--primary-color); border-radius: 24px; background: var(--contrast-color-dark); color: var(--contrast-color-light, #fff); @@ -568,7 +569,7 @@ body[data-layout='layout-home'] section { body[data-layout='layout-home'] .banner { display: flex; flex-direction: column; - background-color: var(--secondary-color); + background-color: var(--primary-color); padding-block-start: 96px; } @@ -580,7 +581,7 @@ body[data-layout='layout-home'] .page-title--container { } body[data-layout='layout-home'] .page-title { - color: var(--text-color); + color: var(--primary-text-color); font-size: 64px; } @@ -596,10 +597,6 @@ body[data-layout='layout-home'] .page-logo { align-self: flex-end; } -html.dark body[data-layout='layout-home'] .page-logo { - filter: brightness(0.8); -} - body[data-layout='layout-home'] .page-title, body[data-layout='layout-home'] .reason-header, body[data-layout='layout-home'] .page-slogan { diff --git a/public/styles/lion/markdown.css b/public/styles/lion/markdown.css index 209076d03..a68dd4c18 100644 --- a/public/styles/lion/markdown.css +++ b/public/styles/lion/markdown.css @@ -354,7 +354,6 @@ .markdown-body h4, .markdown-body h5, .markdown-body h6 { - color: var(--text-color); font-weight: 600; line-height: 1.25; margin-bottom: 1rem; @@ -367,7 +366,7 @@ .markdown-body h1, .markdown-body h2 { - border-bottom: 1px solid var(--primary-lines-color); + border-bottom: 1px solid #eaecef; padding-bottom: 0.3em; } diff --git a/public/styles/lion/variables.css b/public/styles/lion/variables.css index b1352afe6..ed6a42c94 100644 --- a/public/styles/lion/variables.css +++ b/public/styles/lion/variables.css @@ -1,18 +1,14 @@ html { /* Base colors */ - --dandelion-100: #fff6cc; - --dandelion-300: #ffe366; - --dandelion-500: #ffd100; - --dandelion-700: #997d00; - --dandelion-900: #332a00; + --dandilion-100: #fff6cc; + --dandilion-300: #ffe366; + --dandilion-500: #ffd100; + --dandilion-700: #997d00; + --dandilion-900: #332a00; - --blue-100: #b4c1ff; - --blue-300: #8197ff; --blue-500: #002eff; - --blue-700: #0025cc; - --blue-900: #0020b3; - --green-700: #8bcc00; + --green-500: #00ff51; --black: #080700; --white: #ffffff; @@ -21,33 +17,27 @@ html { --gray-300: #b3b3b3; --gray-500: #808080; --gray-700: #4d4d4d; - --gray-800: #282828; --gray-900: #1a1a1a; /* Alias tokens */ - --primary-color: var(--blue-500); - --primary-color-lighter: var(--blue-300); - --primary-color-darker: var(--blue-700); - --secondary-color: var(--dandelion-500); - --secondary-color-lighter: var(--dandelion-300); - --secondary-color-darker: var(--dandelion-700); - --neutral-color: var(--gray-500); - --neutral-color-lightest: var(--gray-100); - --neutral-color-lighter: var(--gray-300); - --neutral-color-darker: var(--gray-700); - --neutral-color-darkest: var(--gray-900); - --primary-icon-color: var(--dandelion-900); - --primary-lines-color: var(--gray-100); + --primary-color: var(--dandilion-500); + --secondary-color: var(--blue-500); + --primary-color-lighter: var(--dandilion-300); + --primary-color-darker: var(--dandilion-700); + --primary-text-color: var(--black); + --primary-icon-color: var(--dandilion-900); + --primary-lines-color: var(--gray-300); --primary-text-inverse-color: var(--gray-100); + --markdown-link-color: var(--blue-500); /* Contrast colors */ --contrast-color-light: var(--white); - --contrast-color-dark: var(--dandelion-900); + --contrast-color-dark: var(--dandilion-900); /* background-colors */ --page-background: var(--white); --secondary-background: var(--gray-100); - --footer-background: var(--neutral-color-lighter); + --footer-background: rgba(0, 0, 0, 0.1); /* typography */ --text-color: var(--black); @@ -57,36 +47,15 @@ html { 'SFMono-Regular', 'Consolas', 'Liberation Mono', 'Menlo', 'Courier', monospace; /* controls */ - --switch-unselected-color: var(--neutral-color); - --switch-selected-color: var(--green-700); - - --sidebar-tag-background-color: var(--secondary-color); - --sidebar-tag-color: var(--text-color); - - /* markdown */ - --markdown-body: var(--text-color); - --markdown-link-color: var(--primary-color); - --markdown-octicon-link: var(--primary-color); - --markdown-syntax-background-color: var(--neutral-color); - --markdown-link-color: var(--primary-color); - --markdown-blockquote-color: var(--secondary-color-darker); + --switch-unselected-color: var(--gray-500); + --switch-selected-color: var(--green-500); } html.dark { - --primary-color: var(--blue-100); - --primary-color-lighter: var(--blue-300); - --primary-color-darker: var(--blue-100); - --secondary-color: var(--dandelion-700); - --secondary-color-lighter: var(--dandelion-900); - --secondary-color-darker: var(--dandelion-500); - --neutral-color: var(--gray-700); - --neutral-color-lightest: var(--gray-900); - --neutral-color-lighter: var(--gray-800); - --neutral-color-darker: var(--gray-500); - --neutral-color-darkest: var(--gray-300); - - --text-color: var(--white); - --primary-icon-color: var(--dandelion-100); + --primary-color: #e63946; + --primary-color-lighter: #e25761; + --primary-color-darker: #a22831; + --primary-text-color: var(--white); --primary-text-inverse-color: #2c3e50; /* Contrast colors */ @@ -94,11 +63,19 @@ html.dark { --contrast-color-dark: #1d3557; /* background-colors */ - --page-background: var(--gray-700); - --footer-background: var(--gray-900); + --page-background: #333; + --footer-background: #4f4f4f; + /* typography */ --text-color: white; /* controls */ --switch-unselected-color: #808080; + --switch-selected-color: #42b983; + + /* markdown */ + --markdown-octicon-link: white; + --markdown-syntax-background-color: #a0a0a0; + --markdown-link-color: #fb7881; + --markdown-blockquote-color: #c9e3ff; } diff --git a/src/components/ui-portal-footer.js b/src/components/ui-portal-footer.js index 63c483eb7..9a6488d38 100644 --- a/src/components/ui-portal-footer.js +++ b/src/components/ui-portal-footer.js @@ -29,7 +29,7 @@ export class UIPortalFooter extends LitElement { #main-footer { padding-inline: 96px; } - + #footer-menu .content-area { flex-direction: row; text-align: left; @@ -43,14 +43,10 @@ export class UIPortalFooter extends LitElement { #footer-menu a { text-decoration: none; - color: var(--text-color); + color: var(--primary-text-color); padding: 5px 0; display: block; } - - #footer-menu a:hover { - text-decoration: underline; - } `, ]; diff --git a/src/components/ui-portal-main-nav.js b/src/components/ui-portal-main-nav.js index a10ceca92..a560069ed 100644 --- a/src/components/ui-portal-main-nav.js +++ b/src/components/ui-portal-main-nav.js @@ -3,14 +3,9 @@ import { css, html, nothing } from 'lit'; import '@lion/ui/define/lion-icon.js'; import { UIBaseElement } from './shared/UIBaseElement.js'; import { addIconResolverForPortal } from './iconset-portal/addIconResolverForPortal.js'; -import uiPortalMainNavBurgerCss from './ui-portal-main-nav-burger.css.js'; +import { navItemDirective } from '../directives/nav-item.js'; -try { - addIconResolverForPortal(); -} catch (e) { - // do nothing - // icons can be registered by somebody else? -} +addIconResolverForPortal(); // TODO: apply https://web.dev/website-navigation/ (aria-current="page" etc.) @@ -20,7 +15,6 @@ try { export class UIPortalMainNav extends UIBaseElement { static properties = { navData: { type: Array, attribute: 'nav-data' }, - layoutWide: { type: Boolean, attribute: 'layout-wide' }, // true or false }; constructor() { @@ -30,31 +24,12 @@ export class UIPortalMainNav extends UIBaseElement { */ this.navData = []; this.layoutWide = false; - this.getLink = item => - html`${item.name}`; - } - - connectedCallback() { - super.connectedCallback(); - if (window) { - // only on the client - window.setTimeout(() => { - // remove the second navigation - // its rendered twice due to lack of lit/ssr - // https://github.com/lit/lit/issues/4472 - const $navs = this.renderRoot.querySelectorAll('[data-part="nav"]'); - if ($navs.length > 1) { - $navs[1].remove(); - } - }); - } } get templateContext() { return { ...super.templateContext, + directives: { navItem: navItemDirective }, data: { navData: this.navData }, }; } @@ -66,7 +41,7 @@ export class UIPortalMainNav extends UIBaseElement { return html` `; }, navLevel(context, { children }) { - const { templates } = context; + const { templates, directives } = context; return html`