Files
fizzy/app/assets/stylesheets/house.css
T
2024-11-27 18:59:15 -06:00

311 lines
6.4 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Colors */
:root {
/* Named color values */
--house-md-black: 0% 0 0;
--house-md-white: 100% 0 0;
--house-md-gray-light: 96% 0.005 96;
--house-md-gray: 92% 0.005 96;
--house-md-gray-dark: 75% 0.005 96;
--house-md-blue: 54% 0.23 255;
--house-md-blue-light: 95% 0.03 255;
--house-md-blue-dark: 80% 0.08 255;
--house-md-orange: 70% 0.2 44;
--house-md-red: 51% 0.2 31;
--house-md-green: 65.59% 0.234 142.49;
--house-md-always-black: 0% 0 0;
/* Abstractions */
--house-color-negative: oklch(var(--house-md-red));
--house-color-positive: oklch(var(--house-md-green));
--house-color-bg: oklch(var(--house-md-white));
--house-color-ink: oklch(var(--house-md-black));
--house-color-ink-reversed: oklch(var(--house-md-white));
--house-color-link: oklch(var(--house-md-blue));
--house-color-subtle-light: oklch(var(--house-md-gray-light));
--house-color-subtle: oklch(var(--house-md-gray));
--house-color-subtle-dark: oklch(var(--house-md-gray-dark));
--house-color-selected: oklch(var(--house-md-blue-light));
--house-color-selected-dark: oklch(var(--house-md-blue-dark));
--house-color-alert: oklch(var(--house-md-orange));
--house-color-always-black: oklch(var(--house-md-always-black));
/* Redefine named color values for dark mode */
@media (prefers-color-scheme: dark) {
--house-md-black: 100% 0 0;
--house-md-white: 0% 0 0;
--house-md-gray: 25.2% 0 0;
--house-md-gray-dark: 30.12% 0 0;
--house-md-gray-darker: 44.95% 0 0;
--house-md-blue: 72.25% 0.16 248;
--house-md-blue-light: 28.11% 0.053 248;
--house-md-blue-dark: 42.25% 0.07 248;
--house-md-red: 73.8% 0.184 29.18;
--house-md-green: 75% 0.21 141.89;
}
}
/* Base styles */
:is(house-md-editor, house-md-toolbar) {
}
a:not([class]) {
color: var(--house-color-link);
text-decoration-skip-ink: auto;
}
:is(a, button, input, textarea) {
--outline-size: max(2px, 0.08em);
--outline-style: solid;
--house-outline-color: currentColor;
caret-color: var(--house-color-link);
&:focus {
outline: var(--outline-size) var(--outline-style) var(--house-outline-color);
outline-offset: var(--outline-offset, var(--outline-size));
}
&:focus-visible {
outline: var(--outline-size) var(--outline-style) var(--house-outline-color);
outline-offset: var(--outline-offset, var(--outline-size));
}
&:focus:not(:focus-visible) {
outline: none;
}
::selection {
background-color: var(--house-color-selected);
}
}
/* Editor */
house-md {
display: flex;
flex-direction: column;
flex-grow: 1;
&:invalid {
border: var(--house-color-negative) 2px solid;
}
}
/* Toolbar */
house-md-toolbar {
background-color: inherit;
border: 1px solid currentColor;
border-radius: 0.5em;
color: currentColor;
display: inline-flex;
font-size: inherit;
padding: 0.2em;
button, label {
aspect-ratio: 4/3;
appearance: none;
background-color: transparent;
block-size: 2em;
border: none;
border-radius: 0.5em;
color: currentColor;
cursor: pointer;
display: grid;
font-size: inherit;
inline-size: auto;
place-items: center;
transition: background-color 300ms ease;
svg {
-webkit-touch-callout: none;
block-size: 0.9em;
fill: currentColor;
grid-area: 1/1;
inline-size: auto;
user-select: none;
}
&:is(:focus, :hover) {
background-color: var(--house-color-subtle);
}
&:is(:active) {
background-color: var(--house-color-selected);
}
}
}
/* Markdown Content */
.house-md-content {
caret-color: var(--color-link);
flex-grow: 1;
font-family: var(--font-sans);
min-block-size: 50dvh;
text-align: left;
white-space: break-spaces;
padding: 1rem;
&.house-md-content-empty::before {
content: attr(placeholder);
color: var(--house-color-ink);
opacity: 0.5;
pointer-events: none;
display: block;
}
&:active, &:focus{
border:none;
outline:none;
}
:is(.h1, .h2, .h3, .h4, .h5, .h6) {
display: inline-inblock;
font-weight: 600;
margin-block: 0;
}
.h1 {
font-size: 2em;
}
.h2 {
font-size: 1.5em;
}
.h3 {
font-size: 1.17em;
}
.h4 {
font-size: 1em;
}
.h5 {
font-size: 0.83em;
}
.h6 {
font-size: 0.67em;
}
.link, .img {
color: var(--house-color-link);
text-decoration: underline;
}
.hr {
border-color: var(--color-house-subtle-dark);
border-style: solid none none;
margin: 2lh auto;
}
.code {
font-family: ui-monospace, monospace;
font-weight: 600;
font-size: 0.85em;
}
.quote {
font-style: italic;
margin: 0 3ch;
}
.quote, .ol-li, .ul-li {
padding-left: 1em;
}
.comment {
color: var(--color-house-positive);
}
mark {
background-color: rgba(241, 241, 26, 0.678);
}
}
/* Uploads */
house-md-upload {
border-radius: 0.5em;
margin-block: 0.5ex;
position: relative;
&[status="failed"] {
background-color: var(--house-color-negative);
color: var(--house-color-ink-reversed);
font-weight: bold;
padding: 0.5em;
}
}
.md-close {
appearance: none;
display: none;
inline-size: 1em;
block-size: 1em;
border: none;
outline: none;
background-color: transparent;
position: absolute;
inset: 0.5em 0.5em auto auto;
cursor: pointer;
house-md-upload[status="failed"] & {
color: var(--house-color-ink-reversed);
display: inline-block;
}
&::before {
content: '×';
color: var(--house-color-ink-reversed);
font-size: 24px;
font-weight: bold;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
.md-file {
font-weight: normal;
house-md-upload[status="complete"] & {
color: var(--house-color-positive);
}
}
.md-progress-bar {
-webkit-appearance: none;
appearance: none;
background-color: var(--house-color-subtle);
border-radius: 0.5em;
block-size: 1ex;
display: block;
inline-size: 100%;
line-height: inherit;
margin: 0;
house-md-upload[status="failed"] & ,
house-md-upload[status="complete"] &{
display: none;
}
&::-webkit-progress-bar {
border-radius: 0.5em;
background-color: var(--house-color-subtle);
}
&::-webkit-progress-inner-element {
border-radius: 0.5em;
}
&::-webkit-progress-value {
border-radius: 0.5em;
background-color: var(--house-color-positive);
}
&::-moz-progress-bar {
border-radius: 0.5em;
background-color: var(--house-color-positive);
}
}