Skip to content

Commit 035e12f

Browse files
authored
Improve button text contrast and add fadeout animation on click (#35)
1 parent 940f37d commit 035e12f

1 file changed

Lines changed: 27 additions & 8 deletions

File tree

index.html

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@
4747
transition: background var(--transition);
4848
}
4949

50+
body,
51+
#editor,
52+
.btn,
53+
#editor::placeholder {
54+
transition: background var(--transition), color var(--transition);
55+
}
56+
57+
#count,
58+
[data-action="theme"] {
59+
transition: opacity var(--transition);
60+
}
61+
5062
.controls {
5163
display: flex;
5264
justify-content: space-between;
@@ -61,15 +73,13 @@
6173

6274
.btn {
6375
cursor: pointer;
64-
opacity: 0.5;
6576
font-size: 14px;
6677
transition: opacity var(--transition), color var(--transition);
6778
user-select: none;
68-
color: var(--text);
79+
color: rgb(from var(--text) r g b / 0.6);
6980
}
7081

7182
.btn:hover {
72-
opacity: 1;
7383
color: var(--hover-accent);
7484
}
7585

@@ -294,9 +304,13 @@
294304
}
295305

296306
toggleCountMode() {
297-
this.countMode = this.countMode === 'words' ? 'characters' : 'words';
298-
localStorage.setItem(SHIRO_COUNT_MODE, this.countMode);
299-
this.updateCount();
307+
this.countDisplay.style.opacity = '0';
308+
setTimeout(() => {
309+
this.countMode = this.countMode === 'words' ? 'characters' : 'words';
310+
localStorage.setItem(SHIRO_COUNT_MODE, this.countMode);
311+
this.updateCount();
312+
this.countDisplay.style.opacity = '1';
313+
}, 150);
300314
}
301315

302316
hide() {
@@ -315,8 +329,13 @@
315329
}
316330

317331
setTheme(theme = this.theme) {
318-
document.documentElement.setAttribute('data-theme', theme);
319-
document.querySelector('[data-action="theme"]').textContent = theme === 'dark' ? 'Light' : 'Dark';
332+
const button = document.querySelector('[data-action="theme"]');
333+
button.style.opacity = '0';
334+
setTimeout(() => {
335+
document.documentElement.setAttribute('data-theme', theme);
336+
button.textContent = theme === 'dark' ? 'Light' : 'Dark';
337+
button.style.opacity = '1';
338+
}, 150);
320339
localStorage.setItem(SHIRO_THEME, theme);
321340
this.theme = theme;
322341
}

0 commit comments

Comments
 (0)