Skip to content

Commit 8494f68

Browse files
authored
Replace emoji icons with premium Lucide SVG icons on docs landing page (#929)
* Replace emoji icons with premium Lucide SVG icons on docs landing page Emojis rendered inconsistently across platforms and felt informal for a premium developer tool. This swaps all 12 card icons with hand-picked Lucide line SVGs that render in the site accent color, stay crisp at any resolution, and look identical across every browser and OS. * Remove remaining inline emojis and add linting instructions for agents - Remove decorative emojis from simulator-camera-support.md and recordings.md - Add "After Making Changes" section to docs/CLAUDE.md with lint/format/typecheck/build steps - Create docs/AGENTS.md with the same instructions for non-Claude agents - Fix Prettier formatting in FeatureCard.astro * Add aria-hidden and focusable=false to decorative card SVG icons These icons are purely decorative (the card title/description convey meaning), so they should be hidden from the accessibility tree to avoid unlabeled graphic noise for screen reader users.
1 parent 706a5d4 commit 8494f68

File tree

7 files changed

+77
-16
lines changed

7 files changed

+77
-16
lines changed

docs/AGENTS.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Docs Agent Guidelines
2+
3+
## After Making Changes
4+
5+
Always run these checks from the `docs/` directory after modifying files:
6+
7+
1. `npm run lint` - Verify ESLint passes
8+
2. `npm run format:check` - Verify Prettier formatting
9+
3. `npm run typecheck` - Verify TypeScript types
10+
4. `npm run build` - Verify production build succeeds

docs/CLAUDE.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ To use an MCP server tool:
2626
1. First load it with ToolSearch: `query: "select:mcp__astro-docs__search_astro_docs"`
2727
2. Then call the tool directly
2828

29+
## After Making Changes
30+
31+
Always run these checks after modifying files in this project:
32+
33+
1. `npm run lint` - Verify ESLint passes
34+
2. `npm run format:check` - Verify Prettier formatting
35+
3. `npm run typecheck` - Verify TypeScript types
36+
4. `npm run build` - Verify production build succeeds
37+
2938
## Code Style Guidelines
3039

3140
- Use TypeScript with strict type checking
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
interface Props {
3+
name: string;
4+
}
5+
6+
const { name } = Astro.props;
7+
8+
const svgAttrs =
9+
'xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"';
10+
11+
const icons: Record<string, string> = {
12+
rocket: `<svg ${svgAttrs}><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"/><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"/><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"/><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"/></svg>`,
13+
"circle-play": `<svg ${svgAttrs}><path d="M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z"/><circle cx="12" cy="12" r="10"/></svg>`,
14+
users: `<svg ${svgAttrs}><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><path d="M16 3.128a4 4 0 0 1 0 7.744"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><circle cx="9" cy="7" r="4"/></svg>`,
15+
plug: `<svg ${svgAttrs}><path d="M12 22v-5"/><path d="M15 8V2"/><path d="M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z"/><path d="M9 8V2"/></svg>`,
16+
camera: `<svg ${svgAttrs}><path d="M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z"/><circle cx="12" cy="13" r="3"/></svg>`,
17+
palette: `<svg ${svgAttrs}><path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z"/><circle cx="13.5" cy="6.5" r=".5" fill="currentColor"/><circle cx="17.5" cy="10.5" r=".5" fill="currentColor"/><circle cx="6.5" cy="12.5" r=".5" fill="currentColor"/><circle cx="8.5" cy="7.5" r=".5" fill="currentColor"/></svg>`,
18+
zap: `<svg ${svgAttrs}><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/></svg>`,
19+
accessibility: `<svg ${svgAttrs}><circle cx="16" cy="4" r="1"/><path d="m18 19 1-7-6 1"/><path d="m5 8 3-3 5.5 3-2.36 3.5"/><path d="M4.24 14.5a5 5 0 0 0 6.88 6"/><path d="M13.76 17.5a5 5 0 0 0-6.88-6"/></svg>`,
20+
settings: `<svg ${svgAttrs}><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"/><circle cx="12" cy="12" r="3"/></svg>`,
21+
"monitor-play": `<svg ${svgAttrs}><path d="M15.033 9.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56V7.648a.645.645 0 0 1 .967-.56z"/><path d="M12 17v4"/><path d="M8 21h8"/><rect x="2" y="3" width="20" height="14" rx="2"/></svg>`,
22+
"circle-help": `<svg ${svgAttrs}><circle cx="12" cy="12" r="10"/><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"/><path d="M12 17h.01"/></svg>`,
23+
"message-circle": `<svg ${svgAttrs}><path d="M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719"/></svg>`,
24+
};
25+
---
26+
27+
<Fragment set:html={icons[name] || ""} />

docs/src/components/starlight/FeatureCard.astro

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
---
2+
import CardIcon from "./CardIcon.astro";
3+
24
interface Link {
35
label: string;
46
href: string;
@@ -17,7 +19,13 @@ const { title, description, href, icon, links } = Astro.props;
1719

1820
<div class="feature-card">
1921
<a href={href} class="card-main-link">
20-
{icon && <span class="card-icon">{icon}</span>}
22+
{
23+
icon && (
24+
<span class="card-icon">
25+
<CardIcon name={icon} />
26+
</span>
27+
)
28+
}
2129
<h3 class="card-title">{title}</h3>
2230
<p class="card-description">{description}</p>
2331
</a>
@@ -72,9 +80,16 @@ const { title, description, href, icon, links } = Astro.props;
7280
}
7381

7482
.card-icon {
75-
font-size: 2rem;
7683
display: block;
84+
width: 2rem;
85+
height: 2rem;
7786
margin-bottom: 0.75rem;
87+
color: var(--sl-color-text-accent);
88+
}
89+
90+
.card-icon :global(svg) {
91+
width: 100%;
92+
height: 100%;
7893
}
7994

8095
.card-title {

docs/src/content/docs/docs/features/capturing/recordings.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ Make sure you don’t have any audio routing enabled. Doing so will confuse Rock
5858

5959
### Does RocketSim install a custom audio driver for audio recording?
6060

61-
No, there’s nothing you need to install for audio recording to work. 🎉
61+
No, there’s nothing you need to install for audio recording to work.
6262

6363
### Why are my iPad recordings upside-down?
6464

docs/src/content/docs/docs/features/capturing/simulator-camera-support.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ description: "Beta of testing the camera on the Simulator"
55

66
A top requested feature has always been Simulator camera support. Constantly having to test the camera on an actual device can be a pain and it’s annoying to run into dead ends on the Simulator for apps that come with camera features.
77

8-
We hear you and we’re excited to share the early beta of RocketSim Camera Simulation 📸
8+
We hear you and we’re excited to share the early beta of RocketSim Camera Simulation.
99

1010
Check out these demo’s:
1111

docs/src/content/docs/docs/index.mdx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,19 +33,19 @@ Get up and running with RocketSim in minutes.
3333
title="First Steps"
3434
description="Set up permissions and configure App Actions to start using RocketSim"
3535
href="/docs/getting-started/onboarding"
36-
icon="🚀"
36+
icon="rocket"
3737
/>
3838
<FeatureCard
3939
title="Product Tour"
4040
description="Watch quick demos and explore all of RocketSim's features"
4141
href="/docs/getting-started/product-tour-and-quick-demos"
42-
icon="🎥"
42+
icon="circle-play"
4343
/>
4444
<FeatureCard
4545
title="Team Usage"
4646
description="Learn how large teams leverage RocketSim to boost productivity"
4747
href="/docs/getting-started/how-large-teams-use-rocketsim"
48-
icon="👥"
48+
icon="users"
4949
/>
5050
</FeatureGrid>
5151

@@ -58,7 +58,7 @@ Explore RocketSim's powerful suite of tools for iOS development.
5858
title="RocketSim Connect"
5959
description="Monitor network traffic and debug API calls in real-time with an intuitive interface"
6060
href="/docs/features/rocketsim-connect/introduction-and-setup"
61-
icon="🔌"
61+
icon="plug"
6262
links={[
6363
{
6464
label: "Setup Guide",
@@ -74,7 +74,7 @@ Explore RocketSim's powerful suite of tools for iOS development.
7474
title="Professional Captures"
7575
description="Create App Store-ready screenshots with device bezels and high-quality video recordings"
7676
href="/docs/features/capturing/screenshots"
77-
icon="📸"
77+
icon="camera"
7878
links={[
7979
{ label: "Screenshots", href: "/docs/features/capturing/screenshots" },
8080
{ label: "Recordings", href: "/docs/features/capturing/recordings" },
@@ -84,7 +84,7 @@ Explore RocketSim's powerful suite of tools for iOS development.
8484
title="Design Comparison"
8585
description="Achieve pixel-perfect designs with overlays, grids, rulers, and magnifier tools"
8686
href="/docs/features/design-comparison/comparing-designs"
87-
icon="🎨"
87+
icon="palette"
8888
links={[
8989
{
9090
label: "Compare Designs",
@@ -100,7 +100,7 @@ Explore RocketSim's powerful suite of tools for iOS development.
100100
title="App Actions"
101101
description="Test push notifications, deep links, location simulation, and network conditions"
102102
href="/docs/features/app-actions/general-app-actions"
103-
icon=""
103+
icon="zap"
104104
links={[
105105
{
106106
label: "Push Notifications",
@@ -116,13 +116,13 @@ Explore RocketSim's powerful suite of tools for iOS development.
116116
title="Accessibility"
117117
description="Test your app with Dynamic Type and accessibility feature toggles"
118118
href="/docs/features/accessibility/toggles-and-dynamic-text"
119-
icon=""
119+
icon="accessibility"
120120
/>
121121
<FeatureCard
122122
title="Appearance"
123123
description="Customize RocketSim's side window, shortcuts, and interface settings"
124124
href="/docs/appearance/side-window"
125-
icon="⚙️"
125+
icon="settings"
126126
links={[
127127
{ label: "Side Window", href: "/docs/appearance/side-window" },
128128
{ label: "Shortcuts", href: "/docs/appearance/shortcuts" },
@@ -139,19 +139,19 @@ Additional resources to help you make the most of RocketSim.
139139
title="Video Tutorials"
140140
description="Browse our YouTube channel for comprehensive video guides and feature showcases"
141141
href="https://www.youtube.com/@rocketsimapp"
142-
icon="📺"
142+
icon="monitor-play"
143143
/>
144144
<FeatureCard
145145
title="FAQ"
146146
description="Find answers to frequently asked questions and common troubleshooting tips"
147147
href="/docs/support/faq"
148-
icon=""
148+
icon="circle-help"
149149
/>
150150
<FeatureCard
151151
title="Support"
152152
description="Report issues or request new features to help improve RocketSim"
153153
href="/docs/support/reporting-an-issue"
154-
icon="💬"
154+
icon="message-circle"
155155
links={[
156156
{ label: "Report an Issue", href: "/docs/support/reporting-an-issue" },
157157
{

0 commit comments

Comments
 (0)