Skip to content

Commit d4a83c7

Browse files
authored
chore: misc styling touch-ups (#604)
* refactor: use OKLCH notation for arbitrary color alpha * fix: improve legibility of light mode content * fix: make config node highlight full width to not mess up indentation * refactor: try moving the sidebar scrolling area * fix: sidebar not scrolling on Chrome * fix: bump black tone to #000000 for light mode * fix: shift light mode grays, use accent color to highlight sidebar items * fix: TOC links should have a different hover color * chore: make sidebar badge background lighter on light mode
1 parent ab77faf commit d4a83c7

File tree

4 files changed

+47
-40
lines changed

4 files changed

+47
-40
lines changed

src/components/ConfigNode.astro

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ const formatDefault = (value?: string): Default => {
5959
{"message" in rawValue ? (
6060
<div
6161
class:list={["block", "message", rawValue.inline && "message-inline"]}
62-
style={rawValue.color ? `border-color: ${rawValue.color}` : undefined}
62+
style={rawValue.color ? `border-left-color: ${rawValue.color}` : undefined}
6363
set:html={render(rawValue.message)}
6464
/>
6565
) : "description" in rawValue ? (
@@ -86,17 +86,8 @@ const formatDefault = (value?: string): Default => {
8686

8787
<style>
8888
details:target {
89-
border-radius: 0.5rem;
90-
padding-block: 0.3rem;
91-
padding-inline: 0.5rem;
92-
}
93-
94-
html[data-theme="dark"] details:target {
95-
background-color: rgba(255, 255, 255, 0.1);
96-
}
97-
98-
html[data-theme="light"] details:target {
99-
background-color: rgba(0, 0, 0, 0.1);
89+
padding: 0.25rem 0;
90+
border-image: conic-gradient(oklch(from var(--sl-color-accent) l c h / 0.1) 0, oklch(from var(--sl-color-accent) l c h / 0.1) 0) fill 0/0/0 100vw;
10091
}
10192

10293
.node {
@@ -117,6 +108,7 @@ const formatDefault = (value?: string): Default => {
117108
padding: 1rem;
118109
border: 1px solid var(--sl-color-gray-5);
119110
background-color: var(--sl-color-gray-6);
111+
contain: paint;
120112
}
121113

122114
.line {
@@ -140,13 +132,12 @@ const formatDefault = (value?: string): Default => {
140132
}
141133

142134
.block {
143-
margin-top: 0.5rem;
144-
margin-bottom: 0.25rem;
145-
margin-left: 1.25rem;
135+
margin: 0.5rem 0 0.5rem 1.25rem;
146136
padding: 0.75rem;
147137
line-height: 1.5;
148138
color: var(--sl-color-white);
149139
background-color: var(--sl-color-gray-5);
140+
border: 1px solid var(--sl-color-gray-4);
150141
border-left: 5px solid var(--sl-color-bg-accent);
151142
}
152143

@@ -159,7 +150,7 @@ const formatDefault = (value?: string): Default => {
159150
padding: 0;
160151
color: var(--sl-color-gray-3);
161152
background-color: unset;
162-
border-left: none;
153+
border: none;
163154
}
164155

165156
.muted {

src/components/Version.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ const { version, inline } = Astro.props;
3030
font-size: var(--sl-text-xs);
3131
padding: 1rem 1.25rem;
3232
border-radius: 0.5rem;
33-
background-color: rgba(var(--sl-color-accent-raw), 0.125);
33+
background-color: oklch(from var(--sl-color-accent) l c h / 0.125);
3434
margin-bottom: 1rem;
3535
}
3636

src/components/overrides/PageFrame.astro

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,29 +72,44 @@ const { hasSidebar } = Astro.locals.starlightRoute;
7272
inset-inline-start: 0;
7373
width: 100%;
7474
background-color: var(--sl-color-black);
75-
overflow-y: auto;
76-
scroll-padding-top: 5.5rem;
7775
}
7876

7977
:global([aria-expanded="true"]) ~ .sidebar-pane {
8078
--sl-sidebar-visibility: visible;
8179
}
8280

8381
.dropdown-wrapper {
84-
position: sticky;
85-
top: 0;
86-
z-index: 20;
87-
padding: 1rem var(--sl-sidebar-pad-x);
82+
--sl-color-gray-6: oklch(from var(--sl-color-gray-5) calc(l - 0.05) c h);
83+
84+
padding: var(--sl-sidebar-pad-x);
8885
background-color: var(--sl-color-black);
89-
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
86+
border-bottom: 1px solid var(--sl-color-hairline-light);
87+
}
88+
89+
:root[data-theme="light"] .dropdown-wrapper {
90+
--sl-color-gray-6: oklch(from var(--sl-color-gray-5) calc(l + 0.025) c h);
91+
}
92+
93+
/* remove odd margins from dropdown */
94+
.dropdown-wrapper :global(.starlight-sidebar-topics-dropdown-dropdown) {
95+
width: 100%;
96+
margin: 0;
9097
}
9198

9299
.sidebar-content {
93100
height: 100%;
94-
min-height: max-content;
95101
padding: 1rem var(--sl-sidebar-pad-x) 0;
96102
flex-direction: column;
97103
gap: 1rem;
104+
overflow-y: auto;
105+
}
106+
107+
/* highlight sidebar items with accent color */
108+
.sidebar-content :global(a:not([aria-current="page"]):hover) {
109+
color: var(--sl-color-accent-high);
110+
}
111+
.main-frame :global(.right-sidebar a:hover) {
112+
color: var(--sl-color-accent-high);
98113
}
99114

100115
@media (min-width: 50rem) {

src/styles/custom.css

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,8 @@
6161

6262
/* Dark mode colors. */
6363
:root {
64-
/* raw values for setting opacity */
65-
--sl-color-accent-raw: 37, 99, 235;
66-
6764
--sl-color-accent-low: #1e3a8a;
68-
--sl-color-accent: rgb(var(--sl-color-accent-raw));
65+
--sl-color-accent: #2563eb;
6966
--sl-color-accent-high: #60a5fa;
7067
--sl-color-white: #ffffff;
7168
--sl-color-gray-1: #e2e5e9;
@@ -82,22 +79,26 @@
8279

8380
/* Light mode colors. */
8481
:root[data-theme="light"] {
85-
/* raw values for setting opacity */
86-
--sl-color-accent-raw: 37, 99, 235;
87-
8882
--sl-color-accent-low: #60a5fa;
89-
--sl-color-accent: rgb(var(--sl-color-accent-raw));
9083
--sl-color-accent-high: #1e3a8a;
91-
--sl-color-white: #111111;
92-
--sl-color-gray-1: #181a1b;
93-
--sl-color-gray-2: #2a2c2e;
94-
--sl-color-gray-3: #3f4347;
84+
--sl-color-white: #000000;
85+
--sl-color-gray-1: #111111;
86+
--sl-color-gray-2: #181a1b;
87+
--sl-color-gray-3: #2a2c2e;
9588
--sl-color-gray-4: #9fa5af;
96-
--sl-color-gray-5: #d1d5db;
97-
--sl-color-gray-6: #e2e5e9;
98-
--sl-color-gray-7: #f3f4f6;
89+
--sl-color-gray-5: #e5e7eb;
90+
--sl-color-gray-6: #f3f4f6;
91+
--sl-color-gray-7: #f9fafb;
9992
--sl-color-black: #ffffff;
10093

94+
/* make separators easier to see */
95+
--sl-color-hairline: var(--sl-color-gray-5);
96+
--sl-color-hairline-light: var(--sl-color-gray-5);
97+
--sl-color-hairline-shade: var(--sl-color-gray-5);
98+
99+
/* make sidebar badge background less pronounced */
100+
--sl-badge-danger-bg: oklch(from var(--sl-color-red-high) calc(l + 0.1) c h);
101+
101102
/* return to Starlight default */
102103
--sl-color-orange-low: hsl(var(--sl-hue-orange), 90%, 88%);
103104
}

0 commit comments

Comments
 (0)