Clean up abstractions
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
--text-xx-large: 2.5rem;
|
||||
|
||||
/* Borders */
|
||||
--border: 1px solid var(--color-subtle);
|
||||
--border: 1px solid var(--color-ink-lighter);
|
||||
|
||||
/* Shadows */
|
||||
--shadow: 0 0 0 1px oklch(var(--lch-black) / 0.02),
|
||||
@@ -127,27 +127,28 @@
|
||||
--lch-pink-lighter: 92% 0.03 338;
|
||||
--lch-pink-lightest: 96% 0.02 336;
|
||||
|
||||
|
||||
|
||||
|
||||
/* Color abstractions */
|
||||
/* Named colors */
|
||||
--color-black: oklch(var(--lch-black));
|
||||
--color-white: oklch(var(--lch-white));
|
||||
|
||||
--color-canvas: oklch(var(--lch-white));
|
||||
|
||||
--color-ink: oklch(var(--lch-ink));
|
||||
--color-ink: oklch(var(--lch-ink-darkest));
|
||||
--color-ink-darkest: oklch(var(--lch-ink-darkest));
|
||||
--color-ink-darker: oklch(var(--lch-ink-darker));
|
||||
--color-ink-dark: oklch(var(--lch-ink-dark));
|
||||
--color-ink-medium: oklch(var(--lch-ink-medium));
|
||||
--color-ink-light: oklch(var(--lch-ink-light));
|
||||
--color-ink-lighter: oklch(var(--lch-ink-lighter));
|
||||
--color-ink-lightest: oklch(var(--lch-ink-lightest));
|
||||
|
||||
--color-ink-inverted: oklch(var(--lch-ink-inverted));
|
||||
|
||||
/* Color abstractions */
|
||||
--color-canvas: oklch(var(--lch-white));
|
||||
|
||||
--color-negative: oklch(var(--lch-red-dark));
|
||||
--color-positive: oklch(var(--lch-green-medium));
|
||||
--color-positive-light: oklch(var(--lch-green-lightest));
|
||||
--color-positive: oklch(var(--lch-green-dark));
|
||||
|
||||
--color-link: oklch(var(--lch-blue-dark));
|
||||
--color-subtle-light: oklch(var(--lch-ink-lightest));
|
||||
--color-subtle: oklch(var(--lch-ink-lighter));
|
||||
--color-subtle-dark: oklch(var(--lch-ink-medium));
|
||||
--color-selected: oklch(var(--lch-blue-lighter));
|
||||
--color-selected-dark: oklch(var(--lch-blue-light));
|
||||
--color-highlight: oklch(var(--lch-yellow-lighter));
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
--font-sans: system-ui;
|
||||
--font-serif: ui-serif, serif;
|
||||
--font-mono: ui-monospace, monospace;
|
||||
--hover-color: var(--color-subtle-dark);
|
||||
--hover-color: var(--color-ink-medium);
|
||||
--hover-size: 0.15rem;
|
||||
--hover-filter: brightness(1);
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
align-items: center;
|
||||
background-color: var(--btn-background, var(--color-canvas));
|
||||
border-radius: var(--btn-border-radius);
|
||||
border: var(--btn-border-size, 1px) solid var(--btn-border-color, var(--color-subtle-dark));
|
||||
border: var(--btn-border-size, 1px) solid var(--btn-border-color, var(--color-ink-medium));
|
||||
color: var(--btn-color, var(--color-ink));
|
||||
cursor: pointer;
|
||||
display: inline-flex;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
}
|
||||
|
||||
.card-columns {
|
||||
border-block-start: 1px solid var(--color-subtle);
|
||||
border-block-start: 1px solid var(--color-ink-lighter);
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 50%);
|
||||
margin: auto;
|
||||
@@ -78,11 +78,11 @@
|
||||
--text-small: 1.1em;
|
||||
|
||||
background-color: var(--color-canvas);
|
||||
box-shadow: 0 0 0 1px var(--color-subtle);
|
||||
box-shadow: 0 0 0 1px var(--color-ink-lighter);
|
||||
line-height: 1.2;
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
box-shadow: 0 0 0 1px var(--color-subtle-dark);
|
||||
box-shadow: 0 0 0 1px var(--color-ink-medium);
|
||||
}
|
||||
|
||||
.avatar {
|
||||
@@ -92,7 +92,7 @@
|
||||
}
|
||||
|
||||
.card--drafted {
|
||||
--card-color: var(--color-subtle-dark) !important;
|
||||
--card-color: var(--color-ink-medium) !important;
|
||||
|
||||
border-color: var(--card-color) !important;
|
||||
border-style: dashed !important;
|
||||
@@ -124,7 +124,7 @@
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
.cards--closed {
|
||||
border-block-start: 1px solid var(--color-subtle);
|
||||
border-block-start: 1px solid var(--color-ink-lighter);
|
||||
justify-content: center;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
--border-color: var(--color-subtle-dark);
|
||||
--border-color: var(--color-ink-medium);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
}
|
||||
|
||||
:where(hr) {
|
||||
border-color: var(--color-subtle-dark);
|
||||
border-color: var(--color-ink-medium);
|
||||
border-style: var(--border-style, solid) none none;
|
||||
margin: 2lh auto;
|
||||
}
|
||||
@@ -37,8 +37,8 @@
|
||||
}
|
||||
|
||||
:is(pre, code, .pre, .code) {
|
||||
background-color: var(--color-subtle-light);
|
||||
border: 1px solid var(--color-subtle);
|
||||
background-color: var(--color-ink-lightest);
|
||||
border: 1px solid var(--color-ink-lighter);
|
||||
border-radius: 0.3em;
|
||||
font-family: var(--font-mono);
|
||||
font-size: 0.85em;
|
||||
@@ -80,7 +80,7 @@
|
||||
}
|
||||
|
||||
:where(table, th, td) {
|
||||
border: 1px solid var(--color-subtle-dark);
|
||||
border: 1px solid var(--color-ink-medium);
|
||||
}
|
||||
|
||||
:where(table) {
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
}
|
||||
|
||||
.comment__content {
|
||||
background-color: var(--color-subtle-light);
|
||||
background-color: var(--color-ink-lightest);
|
||||
border-radius: 0.2em;
|
||||
padding:
|
||||
var(--comment-padding-block)
|
||||
|
||||
@@ -107,6 +107,6 @@
|
||||
|
||||
&:hover,
|
||||
&:focus-visible {
|
||||
background-color: oklch(var(--lch-ink-inverted) / 15%);
|
||||
background-color: oklch(var(--lch-canvas) / 15%);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
block-size: 100%;
|
||||
border-block: 0;
|
||||
border-inline-end: 0;
|
||||
border-inline-start: 1px solid var(--color-subtle);
|
||||
border-inline-start: 1px solid var(--color-ink-lighter);
|
||||
content: "";
|
||||
display: inline-flex;
|
||||
inline-size: 0;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
/* Toolbar */
|
||||
house-md-toolbar {
|
||||
background-color: inherit;
|
||||
border-block-end: 1px solid var(--color-subtle-dark);
|
||||
border-block-end: 1px solid var(--color-ink-medium);
|
||||
border-radius: 0;
|
||||
color: currentColor;
|
||||
display: inline-flex;
|
||||
@@ -47,7 +47,7 @@
|
||||
}
|
||||
|
||||
&:is(:focus, :hover) {
|
||||
background-color: var(--color-subtle);
|
||||
background-color: var(--color-ink-lighter);
|
||||
}
|
||||
|
||||
&:is(:active) {
|
||||
@@ -139,7 +139,7 @@
|
||||
.md-progress-bar {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
background-color: var(--color-subtle);
|
||||
background-color: var(--color-ink-lighter);
|
||||
border-radius: 0.5em;
|
||||
block-size: 1ex;
|
||||
display: block;
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
&::-webkit-progress-bar {
|
||||
border-radius: 0.5em;
|
||||
background-color: var(--color-subtle);
|
||||
background-color: var(--color-ink-lighter);
|
||||
}
|
||||
|
||||
&::-webkit-progress-inner-element {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
accent-color: var(--input-accent-color, var(--color-ink));
|
||||
background-color: var(--input-background, transparent);
|
||||
border-radius: var(--input-border-radius, 0.5em);
|
||||
border: var(--input-border-size, 1px) solid var(--input-border-color, var(--color-subtle-dark));
|
||||
border: var(--input-border-size, 1px) solid var(--input-border-color, var(--color-ink-medium));
|
||||
color: var(--input-color, var(--color-ink));
|
||||
font-size: max(16px, 1em);
|
||||
inline-size: 100%;
|
||||
@@ -148,7 +148,7 @@
|
||||
}
|
||||
|
||||
.switch__btn {
|
||||
background-color: var(--color-subtle-dark);
|
||||
background-color: var(--color-ink-medium);
|
||||
border-radius: 2em;
|
||||
cursor: pointer;
|
||||
inset: 0;
|
||||
@@ -168,7 +168,7 @@
|
||||
}
|
||||
|
||||
.switch__input:disabled + & {
|
||||
background-color: var(--color-subtle-dark) !important;
|
||||
background-color: var(--color-ink-medium) !important;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
}
|
||||
|
||||
a:not([class]) {
|
||||
background-color: var(--color-subtle-light);
|
||||
background-color: var(--color-ink-lightest);
|
||||
border-radius: 2em;
|
||||
color: var(--color-ink);
|
||||
font-weight: 500;
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
@media (hover: hover) {
|
||||
&:hover {
|
||||
background-color: var(--color-subtle);
|
||||
background-color: var(--color-ink-lighter);
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
.lightbox {
|
||||
--backdrop-speed: 150ms;
|
||||
|
||||
background-color: oklch(var(--lch-ink-inverted) / 0.66);
|
||||
background-color: oklch(var(--lch-canvas) / 0.66);
|
||||
block-size: 100dvh;
|
||||
border: 0;
|
||||
inline-size: 100dvw;
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
padding: var(--padding);
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
--border-color: var(--color-subtle-dark);
|
||||
--border-color: var(--color-ink-medium);
|
||||
}
|
||||
|
||||
.notificiations-list--read & {
|
||||
--border-color: var(--color-subtle);
|
||||
--border-color: var(--color-ink-lighter);
|
||||
|
||||
box-shadow: none !important;
|
||||
}
|
||||
@@ -78,8 +78,8 @@
|
||||
|
||||
@media (hover: hover) {
|
||||
&:hover {
|
||||
--btn-background: var(--color-subtle-dark);
|
||||
--btn-border-color: var(--color-subtle-dark);
|
||||
--btn-background: var(--color-ink-medium);
|
||||
--btn-border-color: var(--color-ink-medium);
|
||||
|
||||
scale: 1;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@layer components {
|
||||
.panel {
|
||||
background-color: var(--color-canvas);
|
||||
border: var(--panel-border-size, 1px) solid var(--panel-border-color, var(--color-subtle));
|
||||
border: var(--panel-border-size, 1px) solid var(--panel-border-color, var(--color-ink-lighter));
|
||||
border-radius: var(--panel-border-radius, 1em);
|
||||
color: var(--color-ink);
|
||||
inline-size: var(--panel-size, 60ch);
|
||||
@@ -9,7 +9,7 @@
|
||||
padding: var(--panel-padding, calc(var(--block-space) * 2));
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
--panel-border-color: var(--color-subtle-dark);
|
||||
--panel-border-color: var(--color-ink-medium);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
}
|
||||
|
||||
.popup__item {
|
||||
--btn-background: var(--color-subtle-light);
|
||||
--btn-background: var(--color-ink-lightest);
|
||||
--btn-border-radius: 0.3em;
|
||||
--btn-border-size: 0;
|
||||
--btn-font-weight: 500;
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
&::after {
|
||||
border-radius: var(--btn-border-radius);
|
||||
border: var(--btn-border-size) solid var(--btn-border-color, var(--color-subtle));
|
||||
border: var(--btn-border-size) solid var(--btn-border-color, var(--color-ink-lighter));
|
||||
content: "";
|
||||
display: block;
|
||||
inline-size: calc(100% - var(--btn-padding) * 2);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@layer components {
|
||||
.reactions {
|
||||
--column-gap: 0.4ch;
|
||||
--reaction-border-color: var(--color-subtle);
|
||||
--reaction-border-color: var(--color-ink-lighter);
|
||||
--row-gap: 0;
|
||||
|
||||
margin-block-start: calc(var(--block-space-half) / 2);
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
@media (any-hover: hover) {
|
||||
&:where(:not(:active):hover) {
|
||||
--reaction-border-color: var(--color-subtle-dark);
|
||||
--reaction-border-color: var(--color-ink-medium);
|
||||
|
||||
box-shadow: 0 0 0 var(--hover-size) var(--hover-color);
|
||||
}
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
@media (any-hover: hover) {
|
||||
&:where(:not(:active):hover) {
|
||||
--reaction-border-color: var(--color-subtle-dark);
|
||||
--reaction-border-color: var(--color-ink-medium);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
}
|
||||
|
||||
.gr {
|
||||
color: var(--color-subtle-light);
|
||||
color: var(--color-ink-lightest);
|
||||
}
|
||||
|
||||
.gd {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
background-color: var(--color-black);
|
||||
border-block-start: 1px solid var(--color-subtle-dark);
|
||||
border-block-start: 1px solid var(--color-ink-medium);
|
||||
}
|
||||
|
||||
.terminal__input {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
.txt-ink { color: var(--color-ink); }
|
||||
.txt-reversed { color: var(--color-ink-inverted); }
|
||||
.txt-negative { color: var(--color-negative); }
|
||||
.txt-subtle { color: var(--color-subtle-dark); }
|
||||
.txt-subtle { color: var(--color-ink-medium); }
|
||||
.txt-alert { color: var(--color-marker); }
|
||||
.txt-undecorated { text-decoration: none; }
|
||||
.txt-tight-lines { line-height: 1.2; }
|
||||
@@ -149,7 +149,7 @@
|
||||
.fill { background-color: var(--color-canvas); }
|
||||
.fill-black { background-color: var(--color-ink); }
|
||||
.fill-white { background-color: var(--color-ink-inverted); }
|
||||
.fill-shade { background-color: var(--color-subtle-light); }
|
||||
.fill-shade { background-color: var(--color-ink-lightest); }
|
||||
.fill-selected { background-color: var(--color-selected); }
|
||||
.fill-highlight { background-color: var(--color-highlight); }
|
||||
.fill-transparent { background-color: transparent; }
|
||||
@@ -157,10 +157,10 @@
|
||||
.translucent { opacity: var(--opacity, 0.66); }
|
||||
|
||||
/* Borders */
|
||||
.border { border: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-subtle)); }
|
||||
.border-block { border-block: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-subtle)); }
|
||||
.border-bottom { border-block-end: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-subtle)); }
|
||||
.border-top { border-block-start: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-subtle)); }
|
||||
.border { border: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-ink-lighter)); }
|
||||
.border-block { border-block: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-ink-lighter)); }
|
||||
.border-bottom { border-block-end: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-ink-lighter)); }
|
||||
.border-top { border-block-start: var(--border-size, 1px) var(--border-style, solid) var(--border-color, var(--color-ink-lighter)); }
|
||||
.borderless { border: 0; }
|
||||
|
||||
/* Border radius */
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-subtle-dark); --border-style: dashed" aria-hidden="true">
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-ink-medium); --border-style: dashed" aria-hidden="true">
|
||||
|
||||
<%= icon_tag "check", class: "toggler__visible-when-on" %>
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
<div class="overflow-ellipsis fill-shade"><strong>Everyone</strong></div>
|
||||
</div>
|
||||
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-subtle-dark); --border-style: dashed" aria-hidden="true" />
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-ink-medium); --border-style: dashed" aria-hidden="true" />
|
||||
|
||||
<label for="collection_all_access" class="switch">
|
||||
<%= form.check_box :all_access, class: "switch__input", checked: @collection.all_access?, data: { action: "change->toggle-class#toggle" } %>
|
||||
@@ -44,7 +44,7 @@
|
||||
</label>
|
||||
</li>
|
||||
|
||||
<hr class="separator--horizontal full-width" style="--border-color: var(--color-subtle-dark);" aria-hidden="true" />
|
||||
<hr class="separator--horizontal full-width" style="--border-color: var(--color-ink-medium);" aria-hidden="true" />
|
||||
|
||||
<% if User.active.count > 20 %>
|
||||
<input placeholder="Filter…" class="input input--transparent full-width" type="search" autocorrect="off" autocomplete="off" data-1p-ignore="true" data-action="input->filter#filter">
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<div class="events__container align-start gap">
|
||||
<div class="txt-align-start">
|
||||
<h2 class="txt-normal txt-uppercase txt-nowrap">Custom views</h2>
|
||||
<div style="border-block-start: 1px solid var(--color-subtle); padding-block-start: var(--block-space-half);">
|
||||
<div style="border-block-start: 1px solid var(--color-ink-lighter); padding-block-start: var(--block-space-half);">
|
||||
<% @filters.each do |filter| %>
|
||||
<h3 class="txt-small margin-block-end-half txt-tight-lines">
|
||||
<%= link_to filter.summary, cards_path(**filter.as_params) %>
|
||||
@@ -43,7 +43,7 @@
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<div style="border-block-start: 1px solid var(--color-subtle); padding-block-start: var(--block-space-half);">
|
||||
<div style="border-block-start: 1px solid var(--color-ink-lighter); padding-block-start: var(--block-space-half);">
|
||||
<% @collections.each do |collection| %>
|
||||
<h3 class="txt-small margin-block-end-half txt-tight-lines"><%= link_to collection.name, cards_path(collection_ids: [ collection ]) %></h3>
|
||||
<% end %>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= form_with url: cards_path, id: :filter_form, method: :get, class: "flex flex-column gap full-width", style: "--border-color: var(--color-subtle)" do %>
|
||||
<%= form_with url: cards_path, id: :filter_form, method: :get, class: "flex flex-column gap full-width", style: "--border-color: var(--color-ink-lighter)" do %>
|
||||
<% Array(params[:terms]).each do |term| %>
|
||||
<%= hidden_field_tag "terms[]", term, id: nil %>
|
||||
<% end %>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<%= collection.name %>
|
||||
</h2>
|
||||
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-subtle-dark); --border-style: dashed" aria-hidden="true">
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-ink-medium); --border-style: dashed" aria-hidden="true">
|
||||
|
||||
<label class="switch flex-item-no-shrink">
|
||||
<%= access_involvement_advance_button(collection, user) %>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<h1>All tags</h1>
|
||||
<ul class="txt-align-start">
|
||||
<% @tags.each do |tag| %>
|
||||
<li class="flex align-start justify-space-between gap pad" style="border-block-end: 1px solid var(--color-subtle)">
|
||||
<li class="flex align-start justify-space-between gap pad" style="border-block-end: 1px solid var(--color-ink-lighter)">
|
||||
<span>
|
||||
<strong class="txt-nowrap"><%= tag.title %></strong>
|
||||
</span>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<%= link_to user.name, user, class: "txt-ink btn btn--plain" %>
|
||||
</strong>
|
||||
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-subtle-dark); --border-style: dashed" aria-hidden="true">
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-ink-medium); --border-style: dashed" aria-hidden="true">
|
||||
|
||||
<%= form_with model: user, url: user_role_path(user), data: { controller: "form" }, method: :patch do | form | %>
|
||||
<label class="btn txt-small flex-item-no-shrink" for="<%= dom_id(user, :role) %>" arial-label="Role: <%= user.admin? ? "Administrator" : "Member" %>">
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-subtle-dark);" aria-hidden="true">
|
||||
<hr class="separator--horizontal flex-item-grow" style="--border-color: var(--color-ink-medium);" aria-hidden="true">
|
||||
|
||||
<div class="flex flex-column gap margin-block-start">
|
||||
<%= turbo_frame_tag dom_id(workflow, :stages) do %>
|
||||
|
||||
Reference in New Issue
Block a user