Skip to content

Commit 78555cc

Browse files
Merge remote-tracking branch 'upstream/main'
2 parents 6e4c0b9 + 3542679 commit 78555cc

12 files changed

Lines changed: 490 additions & 557 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,4 +269,4 @@ Made with ❤️ by the recode hive community
269269
<img src="https://img.shields.io/badge/⬆️-Back%20to%20Top-red?style=for-the-badge" alt="Back to Top"/>
270270
</a>
271271

272-
</div>
272+
</div>

blog/google-icon-update/index.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ It's a phenomenon called cognitive friction. You have to stop searching for a re
5252
:::
5353

5454
<BrowserWindow url="https://github.com/recodehive/recode-website/issues" bodyStyle={{padding: 0}}>
55-
[![Github](./assets/05-google-new-logo.png)]()
55+
![Github](./assets/05-google-new-logo.png)
5656
</BrowserWindow>
5757

5858
<span style={{color: 'red'}}>**So From when the issue started happening?**</span>
@@ -65,7 +65,7 @@ It has been happening for five years. The four icons sit in my browser tab bar l
6565

6666
<span style={{color: 'green'}}> **The Solution**</span> If that sounds familiar, Google finally heard you. And me. And apparently everyone who has ever stared at a browser tab bar wondering which shade of blue-red-yellow-green meant Calendar versus Drive.
6767
<BrowserWindow url="https://github.com/recodehive/recode-website/issues" bodyStyle={{padding: 0}}>
68-
[![Github](./assets/01-New-Google-icon-Design.jpg)]()
68+
![Github](./assets/01-New-Google-icon-Design.jpg)
6969
</BrowserWindow>
7070

7171

@@ -84,13 +84,13 @@ At the time, the rebrand looked clean on paper. Google unified its entire app su
8484

8585
<div className="img-zoom">
8686

87-
[![Github](./assets/03-google-old-apps-logo.png)]()
87+
![Github](./assets/03-google-old-apps-logo.png)
8888

8989
</div>
9090

9191
Within hours of the 2020 announcement, the internet responded with a very specific complaint: all the icons now look the same. The new Gmail icon was the most mocked. The classic envelope with a red M that everyone recognized was replaced with a four-color M that looked like a child's art project. People struggled to tell Calendar from Drive, Drive from Docs, and Meet from everything else at a glance.
9292
<BrowserWindow url="https://github.com/recodehive/recode-website/issues" bodyStyle={{padding: 0}}>
93-
[![Github](./assets/04-google-old-outline-logo.png)]()
93+
![Github](./assets/04-google-old-outline-logo.png)
9494
</BrowserWindow>
9595

9696
The complaint was not just aesthetic. It was functional. When apps share the same four colors and similar shapes, your brain cannot build distinct visual shortcuts for each one. You have to read the icon rather than recognize it. That adds cognitive friction dozens of times a day. Multiply that across 3 billion Google Workspace users and the accumulated frustration becomes significant.
@@ -112,7 +112,7 @@ The practical reason is simple: they finally ran out of excuses not to fix it. T
112112

113113
The strategic reason is more interesting. Look at which Google products got gradient icons first before this Workspace rollout: the Google G logo, Gemini, Google Photos, Google Maps. Every product associated with <span style={{color: 'green'}}>**Google's AI push** </span>got gradients first. Applying the same design language to Workspace now visually ties the entire productivity suite to the AI narrative.
114114
<BrowserWindow url="https://github.com/recodehive/recode-website/issues" bodyStyle={{padding: 0}}>
115-
[![Github](./assets/08-google-old.png)]()
115+
![Github](./assets/08-google-old.png)
116116
</BrowserWindow>
117117

118118
Google I/O 2026 is happening this week. The timing of this rollout is not accidental. Google is walking into its biggest annual developer event with a refreshed product suite that looks modern, AI-adjacent, and ready for the next phase of Workspace. The icon redesign is as much a marketing signal as a usability fix.
@@ -127,7 +127,7 @@ The strict four-color rule is gone. Instead of forcing every icon to carry all f
127127

128128
Looking at the new icons directly, here is what stands out:
129129
<BrowserWindow url="https://github.com/recodehive/recode-website/issues" bodyStyle={{padding: 0}}>
130-
[![Github](./assets/09-google-new-design.png)]()
130+
![Github](./assets/09-google-new-design.png)
131131
</BrowserWindow>
132132

133133
The icons are also physically larger in the launcher. Google removed the Workspace page container that previously boxed each icon in, giving more visual real estate to the icon shapes themselves.
@@ -158,7 +158,7 @@ The core complaint for five years was that all the icons look the same. That com
158158

159159
What is not addressed is the deeper question of whether icon design is even the right layer to solve the problem at. The real confusion in a modern Google workflow is not which icon to click. It is which Google product to use for which task. Should this document live in Drive or Sites? Should this conversation happen in Chat or Gmail? Should this meeting be in Meet or Calendar notes?
160160
<BrowserWindow url="https://github.com/recodehive/recode-website/issues" bodyStyle={{padding: 0}}>
161-
[![Github](./assets/11-google-new-design-changes.jpg)]()
161+
![Github](./assets/11-google-new-design-changes.jpg)
162162
</BrowserWindow>
163163

164164
Icon legibility is a surface-level fix for a suite that has genuine overlap and redundancy problems underneath. The new icons will help you click the right app faster. They will not help you decide which app you actually need.

package-lock.json

Lines changed: 11 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
]
2828
},
2929
"dependencies": {
30-
"@clerk/react": "^6.7.1",
30+
"@clerk/react": "^6.7.2",
3131
"@docusaurus/core": "3.10.1",
3232
"@docusaurus/plugin-content-docs": "3.10.1",
3333
"@docusaurus/plugin-google-analytics": "3.10.1",

src/components/blogCarousel/blogCarousel.tsx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,15 @@ export function BlogCarousel() {
2727
setCount(api.scrollSnapList().length);
2828
setCurrent(api.selectedScrollSnap() + 1);
2929

30-
api.on("select", () => {
30+
const onSelect = () => {
3131
setCurrent(api.selectedScrollSnap() + 1);
32-
});
32+
};
33+
34+
api.on("select", onSelect);
35+
36+
return () => {
37+
api.off("select", onSelect);
38+
};
3339
}, [api]);
3440

3541
return (
@@ -62,8 +68,9 @@ export function BlogCarousel() {
6268
}}
6369
plugins={[
6470
Autoplay({
65-
delay: 4000,
66-
stopOnInteraction: true,
71+
delay: 5000,
72+
stopOnInteraction: false,
73+
stopOnMouseEnter: true,
6774
}),
6875
]}
6976
>

src/css/custom.css

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@
173173
* - active-sidebar-override.css
174174
*/
175175

176+
176177
/* ================= SECTION 1: BASIC MENU STRUCTURE ================= */
177178

178179
/* Fix menu overflow and ensure proper display */
@@ -2718,3 +2719,21 @@ html[data-theme="dark"] .blog-post-page .markdown h4 {
27182719
margin-top: 15px !important;
27192720
}
27202721

2722+
/* Fix mobile navigation sidebar overlap and layout alignment under 480px */
2723+
@media screen and (max-width: 480px) {
2724+
.theme-doc-sidebar-container {
2725+
width: 100% !important;
2726+
position: fixed !important;
2727+
z-index: 9999 !important;
2728+
padding: 12px !important;
2729+
}
2730+
2731+
.docMainContainer_node_modules-\@docusaurus-theme-classic-lib-theme-DocPage-Layout-Main-styles-module {
2732+
padding-left: 16px !important;
2733+
padding-right: 16px !important;
2734+
}
2735+
}
2736+
2737+
2738+
2739+

src/pages/showcase/_components/ShowcaseTagSelect/styles.module.css

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
box-shadow: 0 0 2px 1px var(--ifm-color-secondary-darkest);
1111
}
1212

13-
input[type="checkbox"] + .checkboxLabel {
13+
input[type="checkbox"]+.checkboxLabel {
1414
display: flex;
1515
align-items: center;
1616
cursor: pointer;
@@ -22,30 +22,38 @@ input[type="checkbox"] + .checkboxLabel {
2222
border: 2px solid var(--ifm-color-secondary-darkest);
2323
}
2424

25-
input:focus-visible + .checkboxLabel {
25+
input:focus-visible+.checkboxLabel {
2626
outline: 2px solid currentColor;
2727
}
2828

29-
input:checked + .checkboxLabel {
30-
opacity: 0.9;
31-
background-color: var(--site-color-checkbox-checked-bg);
29+
input:checked+.checkboxLabel {
30+
opacity: 1;
31+
background-color: var(--ifm-color-primary);
32+
color: white;
3233
border: 2px solid var(--ifm-color-primary-darkest);
34+
font-weight: 600;
35+
box-shadow: 0 0 8px rgba(0, 0, 0, 0.2);
36+
}
37+
38+
[data-theme="dark"] input:checked+.checkboxLabel {
39+
color: white;
3340
}
3441

35-
input:checked + .checkboxLabel:hover {
42+
input:checked+.checkboxLabel:hover {
3643
opacity: 0.75;
3744
box-shadow: 0 0 2px 1px var(--ifm-color-primary-dark);
3845
}
39-
input[type="checkbox"] + .checkboxLabel {
46+
47+
input[type="checkbox"]+.checkboxLabel {
4048
color: var(--ifm-color-content);
4149
}
4250

43-
[data-theme="dark"] input[type="checkbox"] + .checkboxLabel {
51+
[data-theme="dark"] input[type="checkbox"]+.checkboxLabel {
4452
color: #ffffff;
4553
border-color: #555555;
4654
}
4755

48-
[data-theme="light"] input[type="checkbox"] + .checkboxLabel {
56+
[data-theme="light"] input[type="checkbox"]+.checkboxLabel {
4957
color: #000000;
5058
border-color: var(--ifm-color-secondary-darkest);
5159
}

src/pages/showcase/index.tsx

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,25 @@ function useSiteCountPlural() {
188188
function ShowcaseFilters({ isDark = false }: { isDark?: boolean }) {
189189
const filteredUsers = useFilteredUsers();
190190
const siteCountPlural = useSiteCountPlural();
191+
const history = useHistory();
192+
const location = useLocation();
193+
194+
const clearFilters = () => {
195+
const params = new URLSearchParams(location.search);
196+
197+
params.delete("tags");
198+
params.delete("name");
199+
params.delete("operator");
200+
201+
history.push({
202+
...location,
203+
search: params.toString(),
204+
state: prepareUserState(),
205+
});
206+
};
207+
191208
return (
192-
<section className="margin-top--l margin-bottom--lg container">
209+
<section className="margin-top--l margin-bottom--lg container">
193210
<div className={clsx("margin-bottom--sm", styles.filterCheckbox)}>
194211
<div>
195212
<motion.h2
@@ -219,7 +236,16 @@ function ShowcaseFilters({ isDark = false }: { isDark?: boolean }) {
219236
<span>{siteCountPlural(filteredUsers.length)}</span>
220237
</motion.div>
221238
</div>
222-
<ShowcaseFilterToggle />
239+
<div style={{ display: "flex", gap: "10px", alignItems: "center" }}>
240+
<ShowcaseFilterToggle />
241+
242+
<button
243+
className={styles.clearFilterButton}
244+
onClick={clearFilters}
245+
>
246+
Clear Filters
247+
</button>
248+
</div>
223249
</div>
224250
<motion.ul
225251
initial={{ opacity: 0 }}

src/pages/showcase/styles.module.css

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
align-items: center;
99
}
1010

11-
.filterCheckbox > div:first-child {
11+
.filterCheckbox>div:first-child {
1212
display: flex;
1313
flex: 1 1 auto;
1414
align-items: center;
1515
}
1616

17-
.filterCheckbox > div > * {
17+
.filterCheckbox>div>* {
1818
margin-bottom: 0;
1919
margin-right: 8px;
2020
}
@@ -81,11 +81,11 @@
8181
align-items: center;
8282
}
8383

84-
.showcaseFavoriteHeader > h2 {
84+
.showcaseFavoriteHeader>h2 {
8585
margin-bottom: 0;
8686
}
8787

88-
.showcaseFavoriteHeader > svg {
88+
.showcaseFavoriteHeader>svg {
8989
width: 30px;
9090
height: 30px;
9191
}
@@ -105,15 +105,14 @@
105105
}
106106

107107
.TitleText {
108-
background: linear-gradient(
109-
90deg,
110-
rgb(152 0 255) 0%,
111-
rgb(246 41 41) 50%,
112-
rgb(255 169 8) 100%
113-
);
108+
background: linear-gradient(90deg,
109+
rgb(152 0 255) 0%,
110+
rgb(246 41 41) 50%,
111+
rgb(255 169 8) 100%);
114112
background-clip: text;
115113
-webkit-text-fill-color: transparent;
116114
}
115+
117116
[data-theme="dark"] .filterCheckbox {
118117
background-color: transparent !important;
119118
color: #ffffff !important;
@@ -135,6 +134,7 @@
135134
[data-theme="dark"] .showcaseFavorite {
136135
background-color: #1a1a1a !important;
137136
}
137+
138138
[data-theme="dark"] .filterCheckbox {
139139
background-color: transparent !important;
140140
color: #ffffff !important;
@@ -155,4 +155,31 @@
155155

156156
[data-theme="dark"] .showcaseFavorite {
157157
background-color: #1a1a1a !important;
158+
}
159+
160+
161+
.clearFilterButton {
162+
padding: 4px 10px;
163+
font-size: 12px;
164+
border-radius: 4px;
165+
border: 2px solid var(--ifm-color-primary);
166+
background: transparent;
167+
color: var(--ifm-color-primary);
168+
cursor: pointer;
169+
transition: all 0.2s ease;
170+
}
171+
172+
.clearFilterButton:hover {
173+
background: var(--ifm-color-primary);
174+
color: white;
175+
}
176+
177+
[data-theme="dark"] .clearFilterButton {
178+
color: var(--ifm-color-primary-lighter);
179+
border-color: var(--ifm-color-primary-lighter);
180+
}
181+
182+
[data-theme="dark"] .clearFilterButton:hover {
183+
background: var(--ifm-color-primary);
184+
color: #fff;
158185
}

0 commit comments

Comments
 (0)