From 042c8056f53ab5d9a92d11bfb8552429d64cbe0d Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Tue, 25 Feb 2025 12:44:23 -0500 Subject: [PATCH 1/9] feat(css): expose variables for common colors. --- .../uv-dialogues-module/css/styles.less | 10 ++--- .../css/styles.less | 5 ++- .../modules/uv-shared-module/css/buttons.less | 4 +- .../uv-shared-module/css/catch-all.less | 6 +-- .../modules/uv-shared-module/css/mixins.less | 4 +- .../uv-shared-module/css/variables.less | 39 +++++++++++++------ src/index.html | 7 ++++ src/uv.css | 2 +- 8 files changed, 51 insertions(+), 26 deletions(-) diff --git a/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less b/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less index 311331af4..42808a3c9 100644 --- a/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less @@ -510,14 +510,14 @@ .btn.close { padding: 0.5rem 1rem; /* Equivalent to Tailwind's px-4 py-2 */ - background-color: black; /* bg-black */ - color: white; /* text-white */ + background-color: @body-bg; /* bg-black */ + color: @text-color; /* text-white */ white-space: nowrap; /* Prevent text from wrapping */ - + /* Remove default outline on focus */ outline: none; } - + /* Focus state styles */ .btn.close:focus { outline: none; @@ -526,4 +526,4 @@ } } -@import 'mobile'; \ No newline at end of file +@import 'mobile'; diff --git a/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less b/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less index 0311aad74..a5f6bcfa0 100644 --- a/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less @@ -53,13 +53,14 @@ } } + .items .item a.toggle, [data-uv-navigate] { - color: @link-secondary-color; + color: @link-color; cursor: pointer; &:hover { text-decoration: underline; - color: @link-secondary-hover-color; + color: @link-hover-color; } } } diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/buttons.less b/src/content-handlers/iiif/modules/uv-shared-module/css/buttons.less index ca1d41b3c..86a5ccfda 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/buttons.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/buttons.less @@ -174,7 +174,7 @@ } .iiif-gallery-component { - + .header { .btn { &.size-up, @@ -189,7 +189,7 @@ .btn { &.size-up, &.size-down { - margin-top: 4px; + margin-top: 4px; } } } diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/catch-all.less b/src/content-handlers/iiif/modules/uv-shared-module/css/catch-all.less index 2d04194a9..068870435 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/catch-all.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/catch-all.less @@ -41,7 +41,7 @@ margin-right: @margin-small-horizontal; - color: white; + color: @text-color; font-size: 0; &.moreInfo { @@ -63,7 +63,7 @@ &.embed { display: none; } - + &.fullScreen { display: inline-block; } @@ -74,4 +74,4 @@ .uv.loaded .uv-iiif-extension-host { background-color: #000; -} \ No newline at end of file +} diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/mixins.less b/src/content-handlers/iiif/modules/uv-shared-module/css/mixins.less index f70d1f261..0057fe9aa 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/mixins.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/mixins.less @@ -413,8 +413,8 @@ &.active, .open .dropdown-toggle& { color: @color; - background-color: darken(@background, 8%); - border-color: darken(@border, 12%); + background-color: if((iscolor(@background)), darken(@background, 8%), @border); + border-color: if((iscolor(@border)), darken(@border, 12%), @border); } &:active, &.active, diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less index c98e2d0af..8006bc3d2 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less @@ -1,3 +1,19 @@ +// Exposed CSS variables +@body-bg: var(--color-canvas, #000); +@text-color: var(--color-text, #fff); +@panel-dark-bg: var(--color-panel-bg, #212121); + +@accent-bg: var(--color-accent-bg, @brand-primary); +@accent-text: var(--color-accent-text, @brand-primary); +@link-color: var(--color-link, @accent-text); + +@btn-default-color: var(--color-btn-text, @text-color); +@btn-default-bg: var(--color-btn-bg, @gray); +@btn-default-border: var(--color-btn-border, @gray); + +@btn-primary-color: var(--color-primary-btn-text, #fff); +@btn-primary-bg: var(--color-primary-btn-bg, @accent-bg); +@btn-primary-border: var(--color-primary-btn-border, @accent-bg); // Global values // -------------------------------------------------- @@ -33,8 +49,8 @@ // Scaffolding // ------------------------- -@body-bg: #000; -@text-color: #fff; +// @body-bg: #000; See CSS Variables at top +// @text-color: #fff; See CSS Variables at top @text-secondary-color: #000; @text-tertiary-color: #949494; @headings-color: #000; @@ -43,8 +59,8 @@ // Links // ------------------------- -@link-color: #26b5cc; -@link-hover-color: lighten(@link-color, 10%); +// @link-color: #26b5cc; See CSS Variables at top +@link-hover-color: if((iscolor(@link-color)), lighten(@link-color, 10%), @text-color); @link-secondary-color: @brand-secondary; @link-secondary-hover-color: lighten(@link-secondary-color, 10%); @@ -97,13 +113,14 @@ @btn-font-weight: normal; -@btn-default-color: #fff; -@btn-default-bg: @gray; -@btn-default-border: @gray; +// See CSS Variables at top +// @btn-default-color: #fff; +// @btn-default-bg: @gray; +// @btn-default-border: @gray; -@btn-primary-color: #fff; -@btn-primary-bg: @brand-primary; -@btn-primary-border: @brand-primary; +// @btn-primary-color: #fff; +// @btn-primary-bg: @brand-primary; +// @btn-primary-border: @brand-primary; @btn-secondary-color: #fff; @btn-secondary-bg: @brand-secondary; @@ -135,7 +152,7 @@ // Panels // ------------------------- -@panel-dark-bg: #212121; +// @panel-dark-bg: #212121; See CSS Variables at top @panel-light-bg: #dfdfdf; @panel-border-color: #373737; @panel-border: none; diff --git a/src/index.html b/src/index.html index 71f1110e6..887803d88 100644 --- a/src/index.html +++ b/src/index.html @@ -23,6 +23,13 @@ #uv { width: 100%; height: 100svh; + + --color-canvas: #0a3622; + --color-panel-bg: #031633; + --color-text: #ffe69c; + + --color-accent-bg: #984c0c; + --color-accent-text: #fd9843; } /* @apply hidden mx-auto my-8 */ diff --git a/src/uv.css b/src/uv.css index 0bee1478f..483af092f 100644 --- a/src/uv.css +++ b/src/uv.css @@ -1,7 +1,7 @@ .uv > div { width: 100%; height: 100%; - background-color: #000; + background-color: var(--color-canvas, #000); background-repeat: no-repeat; background-position: 50% 50%; background-image: url(data:image/gif;base64,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); From 5798564cbbb46890ad589ded0d3d617565dc8d3f Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Tue, 25 Feb 2025 12:54:00 -0500 Subject: [PATCH 2/9] feat(css): bring more colors into the fold. --- .../iiif/modules/uv-dialogues-module/css/styles.less | 2 +- .../uv-openseadragoncenterpanel-module/css/styles.less | 4 ++-- .../iiif/modules/uv-pdfheaderpanel-module/css/styles.less | 2 +- .../modules/uv-searchfooterpanel-module/css/styles.less | 6 +++--- .../iiif/modules/uv-shared-module/css/button-groups.less | 6 +++--- .../iiif/modules/uv-shared-module/css/styles.less | 3 +-- .../iiif/modules/uv-shared-module/css/thumbs-view.less | 4 ++-- .../iiif/modules/uv-shared-module/css/variables.less | 4 +++- 8 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less b/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less index 42808a3c9..b73c14874 100644 --- a/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less @@ -220,7 +220,7 @@ box-shadow: inset 0 0 10px #5a5a5a; .label { - color: #fff; + color: @text-color; } } diff --git a/src/content-handlers/iiif/modules/uv-openseadragoncenterpanel-module/css/styles.less b/src/content-handlers/iiif/modules/uv-openseadragoncenterpanel-module/css/styles.less index eb8a9c39d..465ca2b91 100644 --- a/src/content-handlers/iiif/modules/uv-openseadragoncenterpanel-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-openseadragoncenterpanel-module/css/styles.less @@ -204,7 +204,7 @@ } }); } - + div[title="Previous page"] { display: none !important; @@ -258,7 +258,7 @@ cursor: pointer; span { - color: #2a2a2a; + color: @panel-dark-bg; user-select: none; display: block; width: 95%; diff --git a/src/content-handlers/iiif/modules/uv-pdfheaderpanel-module/css/styles.less b/src/content-handlers/iiif/modules/uv-pdfheaderpanel-module/css/styles.less index bd5bbfbcf..7ee6732f8 100644 --- a/src/content-handlers/iiif/modules/uv-pdfheaderpanel-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-pdfheaderpanel-module/css/styles.less @@ -70,7 +70,7 @@ width: 41px; font-size: @font-size-small; overflow: hidden; - color: white; + color: @text-color; } } } diff --git a/src/content-handlers/iiif/modules/uv-searchfooterpanel-module/css/styles.less b/src/content-handlers/iiif/modules/uv-searchfooterpanel-module/css/styles.less index 2a90f9819..673b27a18 100644 --- a/src/content-handlers/iiif/modules/uv-searchfooterpanel-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-searchfooterpanel-module/css/styles.less @@ -76,7 +76,7 @@ .label { position: absolute; - color: #fff; + color: @text-color; margin: 8px @margin-large-horizontal 0 @margin-large-horizontal; min-width: 160px; @@ -176,7 +176,7 @@ margin: 4px 0 0 0; .label { - color: #fff; + color: @text-color; font-weight: bold; padding: 0 10px 0 0; margin: 4px 0 0 0; @@ -251,7 +251,7 @@ .searchResultsInfo { margin: 4px 0 0 0; - color: #fff; + color: @text-color; text-align: center; font-size: 14px; float: left; diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/button-groups.less b/src/content-handlers/iiif/modules/uv-shared-module/css/button-groups.less index 52f1afe49..ab3a727cb 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/button-groups.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/button-groups.less @@ -17,7 +17,7 @@ .btn-warning &, .btn-danger &, .btn-info & { - border-top-color: #fff; + border-top-color: @btn-default-color; } } .dropup { @@ -30,7 +30,7 @@ .btn-danger, .btn-info { .caret { - border-bottom-color: #fff; + border-bottom-color: @btn-default-color; } } } @@ -249,4 +249,4 @@ display: none; } -} \ No newline at end of file +} diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/styles.less b/src/content-handlers/iiif/modules/uv-shared-module/css/styles.less index a65737286..c83be4013 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/styles.less @@ -87,7 +87,7 @@ .headerPanel { position: relative; - color: #fff; + color: @text-color; height: 40px; } @@ -149,4 +149,3 @@ } } } - diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/thumbs-view.less b/src/content-handlers/iiif/modules/uv-shared-module/css/thumbs-view.less index a83f52c68..a1744000a 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/thumbs-view.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/thumbs-view.less @@ -55,7 +55,7 @@ } .thumbsView .thumbs .thumb.selected .wrap { - border: 2px solid white; + border: 2px solid @accent-text; } .thumbsView .thumbs .thumb.searchpreview .wrap { @@ -352,4 +352,4 @@ // } } } -} \ No newline at end of file +} diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less index 8006bc3d2..316d38e87 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less @@ -1,7 +1,9 @@ // Exposed CSS variables @body-bg: var(--color-canvas, #000); @text-color: var(--color-text, #fff); + @panel-dark-bg: var(--color-panel-bg, #212121); +@panel-border-color: var(--color-panel-border, #212121); @accent-bg: var(--color-accent-bg, @brand-primary); @accent-text: var(--color-accent-text, @brand-primary); @@ -154,7 +156,7 @@ // @panel-dark-bg: #212121; See CSS Variables at top @panel-light-bg: #dfdfdf; -@panel-border-color: #373737; +// @panel-border-color: #373737; See CSS Variables at top @panel-border: none; @panel-margin: 8px; From 116b9abd0e4002bb7a726b0f28f92811a3bffe96 Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Tue, 25 Feb 2025 13:12:04 -0500 Subject: [PATCH 3/9] fix(css): tabs and outline colors. --- .../uv-contentleftpanel-module/css/styles.less | 5 +++-- .../modules/uv-shared-module/css/variables.less | 6 +++--- src/index.html | 14 ++++++++------ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/content-handlers/iiif/modules/uv-contentleftpanel-module/css/styles.less b/src/content-handlers/iiif/modules/uv-contentleftpanel-module/css/styles.less index ab4d30e3b..903c7044d 100644 --- a/src/content-handlers/iiif/modules/uv-contentleftpanel-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-contentleftpanel-module/css/styles.less @@ -35,7 +35,7 @@ &.on { border: 1px solid @panel-border-color; border-bottom: 1px solid @panel-dark-bg; - color: @brand-secondary; + color: @accent-text; margin-bottom: -1px; height: 25px; line-height: 25px; @@ -117,7 +117,8 @@ padding: 0 @padding-medium-horizontal 0 0; .iiif-tree-component ul li a.selected { - color: @brand-primary !important; + color: @text-color !important; + background-color: @accent-bg !important; } } diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less index 316d38e87..54b70525f 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less @@ -13,9 +13,9 @@ @btn-default-bg: var(--color-btn-bg, @gray); @btn-default-border: var(--color-btn-border, @gray); -@btn-primary-color: var(--color-primary-btn-text, #fff); -@btn-primary-bg: var(--color-primary-btn-bg, @accent-bg); -@btn-primary-border: var(--color-primary-btn-border, @accent-bg); +@btn-primary-color: var(--color-btn-primary-text, #fff); +@btn-primary-bg: var(--color-btn-primary-bg, @accent-bg); +@btn-primary-border: var(--color-btn-primary-border, @accent-bg); // Global values // -------------------------------------------------- diff --git a/src/index.html b/src/index.html index 887803d88..7ccae2d5f 100644 --- a/src/index.html +++ b/src/index.html @@ -24,12 +24,14 @@ width: 100%; height: 100svh; - --color-canvas: #0a3622; - --color-panel-bg: #031633; - --color-text: #ffe69c; - - --color-accent-bg: #984c0c; - --color-accent-text: #fd9843; + --color-canvas: white; + --color-panel-bg: oklch(0.967 0.003 264.542); /* Tailwind gray-100 */ + --color-text: black; + + --color-accent-bg: oklch(0.902 0.063 306.703); /* Tailwind purple-200 */ + --color-accent-text: oklch(0.438 0.218 303.724); /* Tailwind purple-800 */ + --color-btn-primary-bg: var(--color-accent-text); + --color-btn-primary-border: black; } /* @apply hidden mx-auto my-8 */ From 2e5f8317fadf7b13c11a3b4805d8255f0166ea05 Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Tue, 25 Feb 2025 13:12:45 -0500 Subject: [PATCH 4/9] revert: src/index.html --- src/index.html | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/index.html b/src/index.html index 7ccae2d5f..71f1110e6 100644 --- a/src/index.html +++ b/src/index.html @@ -23,15 +23,6 @@ #uv { width: 100%; height: 100svh; - - --color-canvas: white; - --color-panel-bg: oklch(0.967 0.003 264.542); /* Tailwind gray-100 */ - --color-text: black; - - --color-accent-bg: oklch(0.902 0.063 306.703); /* Tailwind purple-200 */ - --color-accent-text: oklch(0.438 0.218 303.724); /* Tailwind purple-800 */ - --color-btn-primary-bg: var(--color-accent-text); - --color-btn-primary-border: black; } /* @apply hidden mx-auto my-8 */ From 678ff6ac0fbeb6d435702b6e86e3b5d31246240d Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Tue, 25 Feb 2025 13:19:29 -0500 Subject: [PATCH 5/9] feat(css): add @text-muted --- .../modules/uv-moreinforightpanel-module/css/styles.less | 5 +++++ .../iiif/modules/uv-shared-module/css/variables.less | 1 + 2 files changed, 6 insertions(+) diff --git a/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less b/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less index a5f6bcfa0..bae30072b 100644 --- a/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-moreinforightpanel-module/css/styles.less @@ -47,6 +47,11 @@ text-transform: uppercase; } + .label { + color: @text-muted; + border-bottom: 1px solid @panel-border-color; + } + .value { color: @text-color; } diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less index 54b70525f..7e14e9633 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less @@ -1,6 +1,7 @@ // Exposed CSS variables @body-bg: var(--color-canvas, #000); @text-color: var(--color-text, #fff); +@text-muted: var(--color-text-muted, #9a9a9a); @panel-dark-bg: var(--color-panel-bg, #212121); @panel-border-color: var(--color-panel-border, #212121); From f7b599b8baf492369f4a6890b61e8bea7dcf18f1 Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Tue, 25 Feb 2025 16:38:34 -0500 Subject: [PATCH 6/9] feat(css): @property declarations for the CSS variables. --- .../uv-shared-module/css/variables.less | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less index 7e14e9633..0c428010c 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less @@ -1,4 +1,24 @@ // Exposed CSS variables +// -------------------------------------------------- + +@property --color-canvas { syntax: ""; } +@property --color-text { syntax: ""; } +@property --color-text-muted { syntax: ""; } + +@property --color-panel-bg { syntax: ""; } +@property --color-panel-border { syntax: ""; } + +@property --color-accent-bg { syntax: ""; } +@property --color-accent-text { syntax: ""; } +@property --color-link { syntax: ""; } + +@property --color-btn-text { syntax: ""; } +@property --color-btn-bg { syntax: ""; } +@property --color-btn-border { syntax: ""; } +@property --color-btn-primary-text { syntax: ""; } +@property --color-btn-primary-bg { syntax: ""; } +@property --color-btn-primary-border { syntax: ""; } + @body-bg: var(--color-canvas, #000); @text-color: var(--color-text, #fff); @text-muted: var(--color-text-muted, #9a9a9a); @@ -8,7 +28,7 @@ @accent-bg: var(--color-accent-bg, @brand-primary); @accent-text: var(--color-accent-text, @brand-primary); -@link-color: var(--color-link, @accent-text); +@link-color: var(--color-link, @accent-text); @btn-default-color: var(--color-btn-text, @text-color); @btn-default-bg: var(--color-btn-bg, @gray); From a94e2f87eb4ae89841fcfc0514dfa923fd943c84 Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Wed, 26 Feb 2025 13:21:36 -0500 Subject: [PATCH 7/9] feat(css): expose variables for overlay dialogues. --- .../uv-dialogues-module/css/styles.less | 31 +++++-------------- .../uv-shared-module/css/overlays.less | 26 +++++++++++++--- .../uv-shared-module/css/variables.less | 10 +++++- src/index.html | 18 +++++++++++ 4 files changed, 57 insertions(+), 28 deletions(-) diff --git a/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less b/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less index b73c14874..a1478afad 100644 --- a/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less +++ b/src/content-handlers/iiif/modules/uv-dialogues-module/css/styles.less @@ -28,28 +28,24 @@ font-size: 0px; .tab { + margin-bottom: -1px; + padding: 0.25em; line-height: normal; - color: @gray; + color: @overlay-color; font-size: @font-size-base; display: inline-block; text-align: center; - line-height: 22px; - height: 22px; overflow: hidden; width: 75px; margin: 0; cursor: pointer; text-decoration: none; + border-bottom: 1px solid transparent; user-select: none; &:hover { - border-bottom: 1px solid @brand-primary; - color: @text-secondary-color; - margin-bottom: -1px; - font-weight: bold; - height: 23px; - line-height: 23px; text-decoration: none; + border-color: @overlay-color; } &.first { @@ -57,12 +53,9 @@ } &.on { - border-bottom: 1px solid @brand-primary; - color: @text-secondary-color; - margin-bottom: -1px; - font-weight: bold; - height: 23px; - line-height: 23px; + font-weight: 700; + color: @accent-text; + border-color: @accent-text; } } } @@ -77,10 +70,6 @@ } .shareView { - .shareInput { - .single-line-code(); - } - .shareLink { display: block; overflow: hidden; @@ -97,10 +86,6 @@ } .embedView { - .code { - .single-line-code(); - } - .customSize { overflow: hidden; padding-top: @padding-medium-vertical; diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/overlays.less b/src/content-handlers/iiif/modules/uv-shared-module/css/overlays.less index 4d3764d22..cdeeafc7d 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/overlays.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/overlays.less @@ -11,6 +11,26 @@ .overlay { position: absolute; + color: @overlay-color; + + input, + textarea { + width: 100%; + } + + input, + select, + textarea { + padding: 2px; + color: black; + background-color: white; + border: 1px solid black; + } + + [readonly] { + font-family: monospace; + background-color: #eee; + } .top { width: 100%; @@ -30,7 +50,7 @@ width: 100%; background: @overlay-bg; overflow: hidden; - border: 1px solid rgba(0, 0, 0, 0.1); + border: 1px solid @overlay-border; .buttons { padding: @padding-medium-vertical; @@ -50,7 +70,6 @@ text-overflow: ellipsis; h1 { - color: @headings-color; font-size: @headings-size-large; font-weight: @headings-font-weight; margin: @margin-large-vertical 0px 0px 0px; @@ -58,7 +77,6 @@ } h2 { - color: @headings-color; font-size: @headings-size-small; font-weight: @headings-font-weight; margin: 0; @@ -142,4 +160,4 @@ overflow: auto; } } -} \ No newline at end of file +} diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less index 0c428010c..036b45425 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less @@ -8,6 +8,10 @@ @property --color-panel-bg { syntax: ""; } @property --color-panel-border { syntax: ""; } +@property --color-overlay-bg { syntax: ""; } +@property --color-overlay-text { syntax: ""; } +@property --color-overlay-border { syntax: ""; } + @property --color-accent-bg { syntax: ""; } @property --color-accent-text { syntax: ""; } @property --color-link { syntax: ""; } @@ -26,6 +30,10 @@ @panel-dark-bg: var(--color-panel-bg, #212121); @panel-border-color: var(--color-panel-border, #212121); +@overlay-bg: var(--color-overlay-bg, white); +@overlay-color: var(--color-overlay-text, black); +@overlay-border: var(--color-overlay-border, transparent); + @accent-bg: var(--color-accent-bg, @brand-primary); @accent-text: var(--color-accent-text, @brand-primary); @link-color: var(--color-link, @accent-text); @@ -230,8 +238,8 @@ // ------------------------- @overlay-modal-bg: rgba(0, 0, 0, 0.5); -@overlay-bg: #fff; @overlay-group-bg: #F5F5F5; +// @overlay-bg: #fff; see CSS Variables at top // Miscellaneous // ------------------------- diff --git a/src/index.html b/src/index.html index 71f1110e6..11b211f2f 100644 --- a/src/index.html +++ b/src/index.html @@ -23,6 +23,24 @@ #uv { width: 100%; height: 100svh; + + --color-canvas: white; + --color-text: black; + --color-text-muted: oklch(0.446 0.03 256.802); /* Tailwind gray-600 */ + + --color-panel-bg: oklch(0.967 0.003 264.542); /* Tailwind gray-100 */ + --color-panel-border: oklch(0.872 0.01 258.338); /* Tailwind gray-300 */ + + /* + --color-overlay-bg: yellow; + --color-overlay-text: blue; + --color-overlay-border: red; + */ + + --color-accent-bg: oklch(0.902 0.063 306.703); /* Tailwind purple-200 */ + --color-accent-text: oklch(0.438 0.218 303.724); /* Tailwind purple-800 */ + --color-btn-primary-bg: var(--color-accent-text); + --color-btn-primary-border: black; } /* @apply hidden mx-auto my-8 */ From ae531c20d7b682982eb66403086bdf6c2fafa609 Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Wed, 26 Feb 2025 13:22:37 -0500 Subject: [PATCH 8/9] revert: pushed dev css variables again. --- src/index.html | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/src/index.html b/src/index.html index 11b211f2f..71f1110e6 100644 --- a/src/index.html +++ b/src/index.html @@ -23,24 +23,6 @@ #uv { width: 100%; height: 100svh; - - --color-canvas: white; - --color-text: black; - --color-text-muted: oklch(0.446 0.03 256.802); /* Tailwind gray-600 */ - - --color-panel-bg: oklch(0.967 0.003 264.542); /* Tailwind gray-100 */ - --color-panel-border: oklch(0.872 0.01 258.338); /* Tailwind gray-300 */ - - /* - --color-overlay-bg: yellow; - --color-overlay-text: blue; - --color-overlay-border: red; - */ - - --color-accent-bg: oklch(0.902 0.063 306.703); /* Tailwind purple-200 */ - --color-accent-text: oklch(0.438 0.218 303.724); /* Tailwind purple-800 */ - --color-btn-primary-bg: var(--color-accent-text); - --color-btn-primary-border: black; } /* @apply hidden mx-auto my-8 */ From 8b21fccf3d162f053f372ca2a8c046d9bcb02ea1 Mon Sep 17 00:00:00 2001 From: Chris Hallberg Date: Mon, 3 Mar 2025 15:00:49 -0500 Subject: [PATCH 9/9] refactor(css): prefix all CSS variables with --uv. --- .../uv-shared-module/css/variables.less | 88 +++++++++---------- src/uv.css | 2 +- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less index 036b45425..4878b8577 100644 --- a/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less +++ b/src/content-handlers/iiif/modules/uv-shared-module/css/variables.less @@ -1,50 +1,50 @@ // Exposed CSS variables // -------------------------------------------------- -@property --color-canvas { syntax: ""; } -@property --color-text { syntax: ""; } -@property --color-text-muted { syntax: ""; } - -@property --color-panel-bg { syntax: ""; } -@property --color-panel-border { syntax: ""; } - -@property --color-overlay-bg { syntax: ""; } -@property --color-overlay-text { syntax: ""; } -@property --color-overlay-border { syntax: ""; } - -@property --color-accent-bg { syntax: ""; } -@property --color-accent-text { syntax: ""; } -@property --color-link { syntax: ""; } - -@property --color-btn-text { syntax: ""; } -@property --color-btn-bg { syntax: ""; } -@property --color-btn-border { syntax: ""; } -@property --color-btn-primary-text { syntax: ""; } -@property --color-btn-primary-bg { syntax: ""; } -@property --color-btn-primary-border { syntax: ""; } - -@body-bg: var(--color-canvas, #000); -@text-color: var(--color-text, #fff); -@text-muted: var(--color-text-muted, #9a9a9a); - -@panel-dark-bg: var(--color-panel-bg, #212121); -@panel-border-color: var(--color-panel-border, #212121); - -@overlay-bg: var(--color-overlay-bg, white); -@overlay-color: var(--color-overlay-text, black); -@overlay-border: var(--color-overlay-border, transparent); - -@accent-bg: var(--color-accent-bg, @brand-primary); -@accent-text: var(--color-accent-text, @brand-primary); -@link-color: var(--color-link, @accent-text); - -@btn-default-color: var(--color-btn-text, @text-color); -@btn-default-bg: var(--color-btn-bg, @gray); -@btn-default-border: var(--color-btn-border, @gray); - -@btn-primary-color: var(--color-btn-primary-text, #fff); -@btn-primary-bg: var(--color-btn-primary-bg, @accent-bg); -@btn-primary-border: var(--color-btn-primary-border, @accent-bg); +@property --uv-color-canvas { syntax: ""; } +@property --uv-color-text { syntax: ""; } +@property --uv-color-text-muted { syntax: ""; } + +@property --uv-color-panel-bg { syntax: ""; } +@property --uv-color-panel-border { syntax: ""; } + +@property --uv-color-overlay-bg { syntax: ""; } +@property --uv-color-overlay-text { syntax: ""; } +@property --uv-color-overlay-border { syntax: ""; } + +@property --uv-color-accent-bg { syntax: ""; } +@property --uv-color-accent-text { syntax: ""; } +@property --uv-color-link { syntax: ""; } + +@property --uv-color-btn-text { syntax: ""; } +@property --uv-color-btn-bg { syntax: ""; } +@property --uv-color-btn-border { syntax: ""; } +@property --uv-color-btn-primary-text { syntax: ""; } +@property --uv-color-btn-primary-bg { syntax: ""; } +@property --uv-color-btn-primary-border { syntax: ""; } + +@body-bg: var(--uv-color-canvas, #000); +@text-color: var(--uv-color-text, #fff); +@text-muted: var(--uv-color-text-muted, #9a9a9a); + +@panel-dark-bg: var(--uv-color-panel-bg, #212121); +@panel-border-color: var(--uv-color-panel-border, #212121); + +@overlay-bg: var(--uv-color-overlay-bg, white); +@overlay-color: var(--uv-color-overlay-text, black); +@overlay-border: var(--uv-color-overlay-border, transparent); + +@accent-bg: var(--uv-color-accent-bg, @brand-primary); +@accent-text: var(--uv-color-accent-text, @brand-primary); +@link-color: var(--uv-color-link, @accent-text); + +@btn-default-color: var(--uv-color-btn-text, @text-color); +@btn-default-bg: var(--uv-color-btn-bg, @gray); +@btn-default-border: var(--uv-color-btn-border, @gray); + +@btn-primary-color: var(--uv-color-btn-primary-text, #fff); +@btn-primary-bg: var(--uv-color-btn-primary-bg, @accent-bg); +@btn-primary-border: var(--uv-color-btn-primary-border, @accent-bg); // Global values // -------------------------------------------------- diff --git a/src/uv.css b/src/uv.css index 483af092f..8763b03bb 100644 --- a/src/uv.css +++ b/src/uv.css @@ -1,7 +1,7 @@ .uv > div { width: 100%; height: 100%; - background-color: var(--color-canvas, #000); + background-color: var(--uv-color-canvas, #000); background-repeat: no-repeat; background-position: 50% 50%; background-image: url(data:image/gif;base64,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);