Skip to content

Commit 4a7eb4f

Browse files
committed
[Feature] Update theme and design system to follow 'Frosted Sage' visuals
1 parent e51e13a commit 4a7eb4f

16 files changed

Lines changed: 184 additions & 69 deletions

File tree

.storybook/manager.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,44 +9,44 @@ const theme = create({
99
brandTarget: '_self',
1010

1111
// Colors — match toolbox tokens
12-
colorPrimary: '#5f61e8',
13-
colorSecondary: '#5f61e8',
12+
colorPrimary: '#7a9a60',
13+
colorSecondary: '#7a9a60',
1414

1515
// UI
16-
appBg: '#0f1117',
17-
appContentBg: '#0f1117',
18-
appPreviewBg: '#0f1117',
19-
appBorderColor: '#565e8c',
16+
appBg: '#0e120f',
17+
appContentBg: '#0e120f',
18+
appPreviewBg: '#0e120f',
19+
appBorderColor: '#2e3a2c',
2020
appBorderRadius: 8,
2121

2222
// Text
23-
textColor: '#e2e8f0',
24-
textMutedColor: '#7a8a9b',
25-
textInverseColor: '#0f1117',
23+
textColor: '#dce4d0',
24+
textMutedColor: '#56634e',
25+
textInverseColor: '#0e120f',
2626

2727
// Toolbar
28-
barBg: '#1a1d2e',
29-
barTextColor: '#94a3b8',
30-
barSelectedColor: '#818cf8',
31-
barHoverColor: '#818cf8',
28+
barBg: '#181e1a',
29+
barTextColor: '#99a88e',
30+
barSelectedColor: '#8aac6c',
31+
barHoverColor: '#8aac6c',
3232

3333
// Inputs
34-
inputBg: '#1a1d2e',
35-
inputBorder: '#565e8c',
36-
inputTextColor: '#e2e8f0',
34+
inputBg: '#181e1a',
35+
inputBorder: '#2e3a2c',
36+
inputTextColor: '#dce4d0',
3737
inputBorderRadius: 4,
3838

3939
// Buttons
40-
buttonBg: '#1a1d2e',
41-
buttonBorder: '#565e8c',
40+
buttonBg: '#181e1a',
41+
buttonBorder: '#2e3a2c',
4242

4343
// Fonts
4444
fontBase: '"Inter", ui-sans-serif, system-ui, sans-serif',
4545
fontCode: '"JetBrains Mono", ui-monospace, monospace',
4646

4747
// Boolean
48-
booleanBg: '#1a1d2e',
49-
booleanSelectedBg: '#5f61e8',
48+
booleanBg: '#181e1a',
49+
booleanSelectedBg: '#7a9a60',
5050
})
5151

5252
addons.setConfig({ theme })

.storybook/preview.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ const docsTheme = create({
77
base: 'dark',
88
fontBase: '"Inter", ui-sans-serif, system-ui, sans-serif',
99
fontCode: '"JetBrains Mono", ui-monospace, monospace',
10-
colorPrimary: '#5f61e8',
11-
colorSecondary: '#5f61e8',
12-
appBg: '#0f1117',
13-
appContentBg: '#0f1117',
14-
textColor: '#e2e8f0',
15-
textMutedColor: '#7a8a9b',
16-
barBg: '#1a1d2e',
10+
colorPrimary: '#7a9a60',
11+
colorSecondary: '#7a9a60',
12+
appBg: '#0e120f',
13+
appContentBg: '#0e120f',
14+
textColor: '#dce4d0',
15+
textMutedColor: '#56634e',
16+
barBg: '#181e1a',
1717
})
1818

1919
const preview: Preview = {
2020
parameters: {
2121
backgrounds: {
2222
default: 'dark',
23-
values: [{ name: 'dark', value: '#0f1117' }],
23+
values: [{ name: 'dark', value: '#0e120f' }],
2424
},
2525
docs: {
2626
theme: docsTheme,

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
* [Feature] Convert an image into base64
1111
* [Bug] The hamburger menu does not open on click
12+
* [Feature] Update theme and design system to follow `Frosted Sage` visuals
1213

1314
## [1.0.4] - 2026-03-05
1415

public/logo.svg

Lines changed: 1 addition & 1 deletion
Loading

src/assets/logo.svg

Lines changed: 1 addition & 1 deletion
Loading

src/components/TbSearchableDropdown.vue

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,27 @@ function handleSearchKeydown(event: KeyboardEvent) {
9494
class="tb-dropdown__menu tb-dropdown--fixed-width"
9595
>
9696
<div class="tb-dropdown__search">
97-
<input
98-
v-model="search"
99-
:placeholder="placeholder"
100-
class="tb-dropdown__search-input"
101-
:aria-controls="listboxId"
102-
:aria-activedescendant="activeIndex >= 0 ? optionId(activeIndex) : undefined"
103-
@keydown="handleSearchKeydown"
104-
/>
97+
<div class="tb-search-field">
98+
<input
99+
v-model="search"
100+
:placeholder="placeholder"
101+
class="tb-dropdown__search-input"
102+
:aria-controls="listboxId"
103+
:aria-activedescendant="activeIndex >= 0 ? optionId(activeIndex) : undefined"
104+
@keydown="handleSearchKeydown"
105+
/>
106+
<button
107+
v-if="search"
108+
type="button"
109+
class="tb-search-field__clear"
110+
aria-label="Clear search"
111+
@click="search = ''"
112+
>
113+
<svg class="tb-icon-sm" aria-hidden="true" fill="none" stroke="currentColor" viewBox="0 0 24 24">
114+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"/>
115+
</svg>
116+
</button>
117+
</div>
105118
</div>
106119
<div :id="listboxId" role="listbox" class="tb-dropdown__list">
107120
<button

src/css/components.css

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,9 +1107,49 @@
11071107
min-height: 20rem;
11081108
}
11091109

1110+
.tb-preview-panel--ambient {
1111+
position: relative;
1112+
overflow: hidden;
1113+
}
1114+
1115+
.tb-preview-panel--ambient::before {
1116+
content: "";
1117+
position: absolute;
1118+
width: 220px;
1119+
height: 220px;
1120+
background: radial-gradient(circle, var(--color-accent-15), transparent 70%);
1121+
top: -15%;
1122+
left: -8%;
1123+
border-radius: 50%;
1124+
animation: tb-drift 8s ease-in-out infinite alternate;
1125+
}
1126+
1127+
.tb-preview-panel--ambient::after {
1128+
content: "";
1129+
position: absolute;
1130+
width: 180px;
1131+
height: 180px;
1132+
background: radial-gradient(circle, var(--color-accent-10), transparent 70%);
1133+
bottom: -10%;
1134+
right: -5%;
1135+
border-radius: 50%;
1136+
animation: tb-drift 10s ease-in-out infinite alternate-reverse;
1137+
}
1138+
1139+
@keyframes tb-drift {
1140+
0% {
1141+
transform: translate(0, 0) scale(1);
1142+
}
1143+
100% {
1144+
transform: translate(15px, -10px) scale(1.1);
1145+
}
1146+
}
1147+
11101148
.tb-preview-media {
11111149
display: block;
11121150
max-height: 24rem;
1151+
position: relative;
1152+
z-index: 1;
11131153
}
11141154

11151155
.tb-preview-media--full {
@@ -1118,6 +1158,13 @@
11181158
max-height: 32rem;
11191159
}
11201160

1161+
/* --- Gradient separator --- */
1162+
1163+
.tb-separator {
1164+
height: 1px;
1165+
background: linear-gradient(90deg, transparent, var(--color-accent-15) 30%, var(--color-accent-10) 70%, transparent);
1166+
}
1167+
11211168
/* --- Webhook request list sidebar --- */
11221169

11231170
.tb-webhook-sidebar {

src/css/forms.css

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,27 @@
188188
.tb-checkbox__input:disabled {
189189
cursor: not-allowed;
190190
}
191+
192+
/* --- Search field with clear button --- */
193+
194+
.tb-search-field {
195+
position: relative;
196+
}
197+
198+
.tb-search-field__clear {
199+
position: absolute;
200+
right: var(--spacing-3);
201+
top: 50%;
202+
transform: translateY(-50%);
203+
padding: var(--spacing-2);
204+
border-radius: var(--radius-sm);
205+
border: none;
206+
background: none;
207+
color: var(--color-text-muted);
208+
cursor: pointer;
209+
transition: color var(--duration-fast);
210+
}
211+
212+
.tb-search-field__clear:hover {
213+
color: var(--color-text-primary);
214+
}

src/css/layout.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@
375375
font-weight: 500;
376376
color: var(--color-text-muted);
377377
text-decoration: none;
378+
cursor: pointer;
378379
transition:
379380
color var(--duration-fast),
380381
background-color var(--duration-fast);

src/modules/base64-image/Base64ImagePreview.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ function download() {
2626

2727
<template>
2828
<div class="tb-stack-4">
29-
<div class="tb-card tb-flex-center tb-preview-panel">
29+
<div class="tb-card tb-flex-center tb-preview-panel tb-preview-panel--ambient">
3030
<div class="tb-checkerboard">
3131
<img :src="dataUri" alt="Preview" class="tb-img-contain tb-preview-media" />
3232
</div>

0 commit comments

Comments
 (0)