@import "base"; * { box-sizing: border-box; } body { margin: 0; height: 100vh; width: 100vw; display: flex; flex-direction: column; position: relative; overflow: auto; header { text-align: center; width: 100%; height: fit-content; flex-grow: 0; @media (max-width: $breakpoint-mobile) { margin-top: $mobile-navigation-height; } .header-image { height: 200px; width: fit-content; max-width: 100%; object-fit: contain; } } > div { display: flex; gap: 1rem; flex-grow: 1; flex-direction: column; @media (min-width: $breakpoint-mobile) { flex-direction: row; } nav { display: flex; flex-direction: column; flex-shrink: 0; position: sticky; top: 0; padding: 0 1rem; background-color: var(--color-background); z-index: 20; overflow: hidden; width: 100%; height: $mobile-navigation-height; transition: height 200ms; @media (min-width: $breakpoint-mobile) { max-width: 15rem; width: fit-content; top: 1rem; height: fit-content; overflow: visible; button { display: none; } } @media (max-width: $breakpoint-mobile) { position: fixed; &:not(.visible) { ul { display: none; } } &.visible { height: 100vh; } } button { background-color: transparent; border: none; color: var(--color-foreground); font-size: 2rem; cursor: pointer; transition: filter 400ms ease-in; padding: 1rem 0; width: 2rem; height: 2rem; box-sizing: content-box; &:hover { filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary)); transition: filter 100ms cubic-bezier(0, 2.01, .99, -0.72) 50ms; } } ul { display: flex; flex-direction: column; gap: 0.75rem; list-style-type: none; padding: 0; margin: 0; li { border-radius: 0.5rem; background-color: var(--color-shade-1); transition: background-color 150ms; --local-primary: var(--color-primary); --local-border: var(--color-shade-1); &.link-back { --local-primary: var(--color-secondary); --local-border: var(--color-shade-4); background-color: var(--color-background); } &.active { background-color: var(--color-shade-2); --local-border: var(--color-shade-4); } > a { display: flex; align-items: center; gap: 0.5rem; border-radius: 0.5rem; border: solid 0.1em var(--local-border); padding: 0.4rem 1rem; color: var(--color-foreground); text-decoration: none; font-size: 1.2em; box-sizing: border-box; transition-property: filter, border-color; transition-duration: 400ms; transition-timing-function: ease-in; &:visited, &:focus, &:active, &:hover { color: var(--color-foreground); } i[data-icon] { padding-right: 0.5em; padding-top: 0.2em; padding-bottom: 0.2em; border-right: solid 0.1em currentColor; } } &:hover, &:focus-within { background-color: transparent; a { border: solid 0.1em var(--color-white); background-color: transparent; filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--local-primary)) drop-shadow(0 0 0.25em var(--local-primary)); transition: filter 100ms cubic-bezier(0, 2.01, .99, -0.72) 50ms, border-color 100ms cubic-bezier(0, 2.01, .99, -0.72) 50ms; &:visited, &:focus, &:active, &:hover { color: var(--color-white); } } } } } } main { max-width: min(var(--container-4xl), 100vw); width: 100%; padding: 0 1rem; @media (min-width: $breakpoint-mobile) { padding-left: 2rem; border-left: dashed 0.25rem var(--color-shade-4); } } } } i[data-icon] { display: inline-block; width: 1em; height: 1em; flex-shrink: 0; position: relative; box-sizing: content-box; &::before { content: ''; display: block; width: 100%; height: 100%; mask-size: contain; mask-position: center; mask-repeat: no-repeat; background-color: currentColor; } &[data-icon='arrow-left']::before { mask-image: url('../icon/arrow_left.svg'); } &[data-icon='arrow-top']::before { mask-image: url('../icon/arrow_top.svg'); } &[data-icon='arrow-right']::before { mask-image: url('../icon/arrow_right.svg'); } &[data-icon='arrow-down']::before { mask-image: url('../icon/arrow_down.svg'); } &[data-icon='info']::before { mask-image: url('../icon/info.svg'); } &[data-icon='home']::before { mask-image: url('../icon/home.svg'); } &[data-icon='menu-small']::before { mask-image: url('../icon/menu_small.svg'); } } a { &.a-regular, &.a-regular:hover, &.a-regular:active, &.a-regular:focus, &.a-regular:visited { color: var(--color-accent-1); text-decoration: underline; } &.a-hover, &.a-hover:visited { color: var(--color-accent-3); text-decoration: none; } &.a-visited, &.a-visited:hover, &.a-visited:active, &.a-visited:focus { color: var(--color-accent-2); text-decoration: underline; } } pre, .code { max-width: 100%; overflow-x: auto; } .layout-column { display: flex; width: 100%; & > * { width: 100%; } @media (max-width: $breakpoint-mobile) { flex-wrap: wrap; & > * { width: 100%; } } } .flex-wrap-md { display: flex; align-items: center; & > * { width: 100%; } @media (max-width: $breakpoint-xl) { flex-wrap: wrap; justify-content: center; & > * { width: 100%; } } } main.generator { > div { display: flex; flex-direction: column; gap: 1em; align-items: center; } img { width: 400px; height: 300px; object-fit: contain; filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary)); } i { font-size: 3em; filter: drop-shadow(0 0 0.0625em var(--color-white)) drop-shadow(0 0 0.125em var(--color-primary)) drop-shadow(0 0 0.25em var(--color-primary)); } } .swatch-grid { background-color: var(--color-background); color: var(--color-foreground); padding: 1rem; section { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; & > span { width: 100%; font-size: var(--text-xl); } .swatch-container { display: inline-flex; flex-direction: column; align-items: end; gap: 0.25rem; background-color: var(--color-background); border-radius: 1rem; padding: 0.5rem; border: 0.125rem solid var(--color-foreground); .swatch { background-color: var(--swatch-color); width: 8rem; height: 8rem; border-radius: 0.5rem; } span { font-family: "Departure Mono", ui-monospace, monospace; color: var(--color-foreground); line-height: 1.5; } } } } .glow-16-primary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 16px; color: var(--color-white); filter: url('glows.svg#textBlur16Primary') } .glow-18-primary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 18px; color: var(--color-white); filter: url('glows.svg#textBlur18Primary') } .glow-24-primary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 24px; color: var(--color-white); filter: url('glows.svg#textBlur24Primary') } .glow-32-primary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 32px; color: var(--color-white); filter: url('glows.svg#textBlur32Primary') } .glow-48-primary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 48px; color: var(--color-white); filter: url('glows.svg#textBlur48Primary') } .glow-72-primary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 72px; color: var(--color-white); filter: url('glows.svg#textBlur72Primary') } .glow-160-primary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 160px; color: var(--color-white); filter: url('glows.svg#textBlur160Primary') } .glow-16-secondary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 16px; color: var(--color-white); filter: url('glows.svg#textBlur16Secondary') } .glow-18-secondary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 18px; color: var(--color-white); filter: url('glows.svg#textBlur18Secondary') } .glow-24-secondary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 24px; color: var(--color-white); filter: url('glows.svg#textBlur24Secondary') } .glow-32-secondary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 32px; color: var(--color-white); filter: url('glows.svg#textBlur32Secondary') } .glow-48-secondary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 48px; color: var(--color-white); filter: url('glows.svg#textBlur48Secondary') } .glow-72-secondary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 72px; color: var(--color-white); filter: url('glows.svg#textBlur72Secondary') } .glow-160-secondary { font-family: "Argon Glow", ui-sans, sans-serif; font-weight: 400; font-size: 160px; color: var(--color-white); filter: url('glows.svg#textBlur160Secondary') }