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`
${children.map(
@@ -78,7 +53,7 @@ export class UIPortalMainNav extends UIBaseElement {
-
${item.children.map(
child1 => html`
- ${this.getLink(child1)}
+ ${child1.name}
${child1.children?.length
? html` collapsible
@@ -99,14 +74,16 @@ export class UIPortalMainNav extends UIBaseElement {
`;
},
navItem(context, { item }) {
- return this.getLink(item);
+ const { directives } = context;
+
+ return html`${item.name}`;
},
};
attributeChangedCallback(attrName, oldVal, newVal) {
super.attributeChangedCallback(attrName, oldVal, newVal);
- if (attrName === 'layout-wide') {
- if (newVal === true || newVal === 'true') {
+ if (attrName === 'nav-data') {
+ if (this.navData.find(item => item.active)?.url !== '/') {
this.setAttribute('data-wide', 'true');
} else {
this.removeAttribute('data-wide');
@@ -136,14 +113,11 @@ const baseUINavMarkup = {
return html`