Skip to content

Commit 2e15da4

Browse files
committed
Fix tabs, toast, rating palette
1 parent f096692 commit 2e15da4

File tree

6 files changed

+22
-168
lines changed

6 files changed

+22
-168
lines changed

css/components/rating.css

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,7 @@
99
box-shadow: var(--shadow-sm);
1010
transition: var(--transition-all);
1111
position: relative;
12-
}
13-
14-
/* Variants for Data-driven Styling */
15-
.rating[data-variant] {
16-
--star-color: var(--variant-bg);
12+
--star-color: var(--variant-bg); /* Directly applying variant variables */
1713
--star-color-hover: var(--variant-hover);
1814
--star-color-shadow: var(--variant-shadow);
1915
}

css/components/tabs.css

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,12 @@
1515
width: fit-content;
1616
}
1717

18-
/* Active Tab Colors for Variants */
19-
[data-variant="primary"] .tab-active {
20-
color: var(--variant-text);
21-
background-color: var(--variant-bg);
22-
}
23-
[data-variant="secondary"] .tab-active {
24-
color: var(--variant-text);
25-
background-color: var(--variant-bg);
26-
}
27-
[data-variant="success"] .tab-active {
28-
color: var(--variant-text);
29-
background-color: var(--variant-bg);
30-
}
31-
[data-variant="warning"] .tab-active {
32-
color: var(--variant-text);
33-
background-color: var(--variant-bg);
34-
}
35-
[data-variant="danger"] .tab-active {
36-
color: var(--variant-text);
37-
background-color: var(--variant-bg);
38-
}
39-
[data-variant="info"] .tab-active {
18+
/* Active Tab */
19+
.tab-active {
4020
color: var(--variant-text);
4121
background-color: var(--variant-bg);
22+
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15);
23+
border-radius: var(--radius-md);
4224
}
4325

4426
/* Horizontal Layout */
@@ -80,19 +62,12 @@
8062
border-radius: var(--radius-md);
8163
outline: none;
8264
}
65+
8366
.tab:hover,
8467
.tab:focus {
8568
color: var(--variant-hover);
8669
}
8770

88-
/* Active Tab */
89-
.tab-active {
90-
color: var(--variant-text);
91-
background-color: var(--variant-hover-bg);
92-
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.15);
93-
border-radius: var(--radius-md);
94-
}
95-
9671
/* Underlined Variant */
9772
[data-style="underlined"] .tab-active::after {
9873
content: "";
@@ -159,13 +134,15 @@
159134
[data-layout="vertical"] {
160135
flex-direction: column;
161136
}
137+
162138
[data-layout="vertical"] .tabs {
163139
flex-direction: row;
164140
border-right: none;
165141
border-bottom: 2px solid var(--variant-border);
166142
padding-right: 0;
167143
padding-bottom: var(--space-1);
168144
}
145+
169146
[data-layout="vertical"] .tab-content {
170147
margin-left: 0;
171148
margin-top: var(--space-2);

css/components/toast.css

Lines changed: 13 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@
55
gap: var(--space-2);
66
padding: clamp(0.75rem, 1vw, 0.75rem);
77
width: clamp(200px, 50%, 350px);
8-
background-color: var(--neutral-50);
9-
color: var(--neutral-900);
10-
border: 1px solid var(--neutral-200);
8+
background-color: var(--variant-bg);
9+
color: var(--variant-text);
10+
border: 1px solid var(--variant-border);
1111
border-radius: var(--radius-md);
12-
box-shadow: var(--shadow-md);
12+
box-shadow: var(--variant-shadow);
1313
position: fixed;
1414
pointer-events: all;
1515
transition: transform 0.3s ease, opacity 0.3s ease;
1616
z-index: 9999;
1717
}
1818

1919
/* Toast Position Variants */
20-
.toast[data-position="top-right"], [data-position="bottom-right"] { right: 1rem; }
20+
.toast[data-position="top-right"], .toast[data-position="bottom-right"] { right: 1rem; }
2121
.toast[data-position="top-right"] { top: 1rem; }
2222
.toast[data-position="bottom-right"] { bottom: 1rem; }
23-
.toast[data-position="top-left"], [data-position="bottom-left"] { left: 1rem; }
23+
.toast[data-position="top-left"], .toast[data-position="bottom-left"] { left: 1rem; }
2424
.toast[data-position="top-left"] { top: 1rem; }
2525
.toast[data-position="bottom-left"] { bottom: 1rem; }
2626
.toast[data-position="top-center"] {
@@ -43,8 +43,8 @@
4343
position: absolute;
4444
top: -0.75rem;
4545
right: -0.75rem;
46-
background-color: var(--neutral-500);
47-
color: white;
46+
background-color: var(--variant-hover);
47+
color: var(--variant-text);
4848
border-radius: 50%;
4949
width: 1.5rem;
5050
height: 1.5rem;
@@ -53,7 +53,7 @@
5353
justify-content: center;
5454
font-size: 0.75rem;
5555
font-weight: bold;
56-
box-shadow: var(--shadow-sm);
56+
box-shadow: var(--variant-shadow);
5757
}
5858
[data-position="top-left"] .toast-stack-count,
5959
[data-position="bottom-left"] .toast-stack-count {
@@ -83,17 +83,6 @@
8383
transform: translateY(20px);
8484
}
8585

86-
/* Toast Variants */
87-
.toast[data-variant="primary"] { background-color: var(--primary-light); color: var(--primary-dark); border-color: var(--primary); }
88-
.toast[data-variant="secondary"] { border-color: var(--secondary); background-color: var(--neutral-50); color: var(--neutral-900); }
89-
.toast[data-variant="success"] { border-color: var(--success); background-color: var(--neutral-50); color: var(--neutral-900); }
90-
.toast[data-variant="danger"] { border-color: var(--danger); background-color: var(--neutral-50); color: var(--neutral-900); }
91-
.toast[data-variant="warning"] { border-color: var(--warning); background-color: var(--neutral-50); color: var(--neutral-900); }
92-
.toast[data-variant="info"] { border-color: var(--info); background-color: var(--neutral-50); color: var(--neutral-900); }
93-
94-
/* Borderless Toast */
95-
.toast[data-border="false"] { border: none; }
96-
9786
/* Dismiss Button */
9887
.toast-dismiss {
9988
position: absolute;
@@ -102,11 +91,11 @@
10291
background: none;
10392
border: none;
10493
font-size: 1.25rem;
105-
color: var(--neutral-500);
94+
color: var(--variant-text);
10695
cursor: pointer;
10796
transition: color 0.2s;
10897
}
109-
.toast-dismiss:hover { color: var(--neutral-700); }
98+
.toast-dismiss:hover { color: var(--variant-hover); }
11099

111100
/* Auto-Dismiss Progress Bar */
112101
.toast-progress {
@@ -116,82 +105,12 @@
116105
height: 4px;
117106
width: 100%;
118107
border-radius: 0 0 var(--radius-md) var(--radius-md);
119-
animation: toast-progress-bar linear forwards paused;
120-
background-color: currentColor;
108+
animation: toast-progress-bar linear forwards;
109+
background-color: var(--variant-dark-bg);
121110
}
122111

123-
/* Dynamic Progress Bar Colors */
124-
[data-variant="primary"] .toast-progress { background-color: var(--primary); }
125-
[data-variant="secondary"] .toast-progress { background-color: var(--secondary); }
126-
[data-variant="success"] .toast-progress { background-color: var(--success); }
127-
[data-variant="danger"] .toast-progress { background-color: var(--danger); }
128-
[data-variant="warning"] .toast-progress { background-color: var(--warning); }
129-
[data-variant="info"] .toast-progress { background-color: var(--info); }
130-
131112
/* Progress Bar Animation */
132113
@keyframes toast-progress-bar {
133114
from { width: 100%; }
134115
to { width: 0%; }
135116
}
136-
137-
/* Toast History Container */
138-
.toast-history-container {
139-
position: fixed;
140-
bottom: 2rem;
141-
right: 1rem;
142-
max-width: 300px;
143-
background-color: var(--neutral-50);
144-
border-radius: var(--radius-md);
145-
box-shadow: var(--shadow-md);
146-
overflow-y: auto;
147-
max-height: 60vh;
148-
padding: var(--space-4);
149-
z-index: 9999;
150-
display: flex;
151-
flex-direction: column;
152-
gap: var(--space-2);
153-
scrollbar-color: var(--primary) var(--neutral-200);
154-
scrollbar-width: thin;
155-
}
156-
157-
.toast-history-container::-webkit-scrollbar {
158-
width: 8px;
159-
}
160-
.toast-history-container::-webkit-scrollbar-thumb {
161-
background-color: var(--primary);
162-
border-radius: 4px;
163-
}
164-
.toast-history-container::-webkit-scrollbar-track {
165-
background-color: var(--neutral-200);
166-
}
167-
168-
/* Toast History Item */
169-
.toast-history-item {
170-
display: flex;
171-
align-items: center;
172-
gap: var(--space-2);
173-
padding: var(--space-2);
174-
border-radius: var(--radius-sm);
175-
font-size: 0.875rem;
176-
color: var(--neutral-800);
177-
}
178-
.toast-history-item[data-variant="primary"] { background-color: var(--primary-light); color: var(--primary-dark); }
179-
.toast-history-item[data-variant="secondary"] { background-color: var(--secondary); color: var(--neutral-50); }
180-
.toast-history-item[data-variant="success"] { background-color: var(--success); color: white; }
181-
.toast-history-item[data-variant="danger"] { background-color: var(--danger); color: white; }
182-
.toast-history-item[data-variant="warning"] { background-color: var(--warning); color: white; }
183-
.toast-history-item[data-variant="info"] { background-color: var(--info); color: white; }
184-
185-
/* History Close Button */
186-
.toast-history-close {
187-
position: absolute;
188-
top: 0.5rem;
189-
right: 0.5rem;
190-
background: none;
191-
border: none;
192-
font-size: 1.25rem;
193-
color: var(--neutral-500);
194-
cursor: pointer;
195-
transition: color 0.2s;
196-
}
197-
.toast-history-close:hover { color: var(--neutral-700); }

demo.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1107,7 +1107,6 @@ <h2 class="font-lg text-primary my-4">Toast Component Demo</h2>
11071107
<button class="btn" data-variant="primary" onclick="showToast('Top-Left Positioned Toast', 'primary', 'top-left')">Top-Left Position</button>
11081108
<button class="btn" data-variant="secondary" onclick="showToast('Bottom-Center Positioned Toast', 'secondary', 'bottom-center')">Bottom-Center Position</button>
11091109
<button class="btn" data-variant="primary" onclick="showToast('Auto-dismiss Toast', 'primary', 'top-right', true, 5)">Auto-Dismiss (5s)</button>
1110-
<button class="btn" data-variant="info" onclick="showToastHistory()">Show Toast History</button>
11111110
</div>
11121111
</section>
11131112

js/components/toast.js

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
let toastHistory = [];
2-
31
// Function to show toast with updated data-* attributes for customization
42
export function showToast(message, variant = 'primary', position = 'top-right', autoDismiss = false, dismissDuration = 5) {
53
// Create or get existing container based on position
@@ -49,9 +47,6 @@ export function showToast(message, variant = 'primary', position = 'top-right',
4947
// Apply entry animation
5048
toast.classList.add('toast-enter');
5149
setTimeout(() => toast.classList.remove('toast-enter'), 300);
52-
53-
// Save toast in history
54-
toastHistory.push({ message, variant });
5550
}
5651

5752
// Start auto-dismiss functionality with a progress bar
@@ -97,33 +92,3 @@ export function dismissToast(toastElement) {
9792
}
9893
}, 300);
9994
}
100-
101-
// Show toast history in a dedicated container
102-
export function showToastHistory() {
103-
const existingHistory = document.querySelector('.toast-history-container');
104-
if (existingHistory) existingHistory.remove();
105-
106-
const historyContainer = document.createElement('div');
107-
historyContainer.className = 'toast-history-container';
108-
historyContainer.innerHTML = `
109-
<button class="toast-history-close" onclick="closeToastHistory()">&times;</button>
110-
`;
111-
112-
// Add each toast history item to the container
113-
toastHistory.slice().reverse().forEach(item => {
114-
const historyItem = document.createElement('div');
115-
historyItem.className = 'toast-history-item';
116-
historyItem.setAttribute('data-variant', item.variant);
117-
historyItem.innerHTML = `<span>${item.message}</span>`;
118-
historyContainer.appendChild(historyItem);
119-
});
120-
121-
// Append the history container to the body
122-
document.body.appendChild(historyContainer);
123-
}
124-
125-
// Close the toast history container
126-
export function closeToastHistory() {
127-
const historyContainer = document.querySelector('.toast-history-container');
128-
if (historyContainer) historyContainer.remove();
129-
}

js/main.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import { toggleAccordion } from './components/accordion.js';
33
import { showHologram } from './components/hologram.js';
44
import { showTabContent } from './components/tabs.js';
5-
import { showToast, showToastHistory, dismissToast, startAutoDismiss, pauseAllProgressBars, closeToastHistory } from './components/toast.js';
5+
import { showToast, dismissToast, startAutoDismiss, pauseAllProgressBars } from './components/toast.js';
66
import { Modal } from './components/modal.js';
77
import { MultiSelect } from './components/multiselect.js';
88
import { DateTimePicker } from './components/datetime-picker.js';
@@ -47,11 +47,9 @@ window.toggleAccordion = toggleAccordion;
4747
window.showHologram = showHologram;
4848
window.showTabContent = showTabContent;
4949
window.showToast = showToast;
50-
window.showToastHistory = showToastHistory;
5150
window.dismissToast = dismissToast;
5251
window.startAutoDismiss = startAutoDismiss;
5352
window.pauseAllProgressBars = pauseAllProgressBars;
54-
window.closeToastHistory = closeToastHistory;
5553
window.Modal = Modal;
5654
window.MultiSelect = MultiSelect;
5755
window.DateTimePicker = DateTimePicker;

0 commit comments

Comments
 (0)