Skip to the page
A Rough Idea Design system

Icons

Every icon set in use across A Rough Idea's apps, side by side, to choose a direction: the portfolio's three drafts, v2's own interface icons, the library most apps use, the sets apps draw themselves, the explorables' glyphs, and the apps' own icons.

Open the direction; see Choosing
Size of every set

The portfolio's three drafts

The portfolio's icon draft, all of it: three whole sets, drawn on October 17 for the portfolio's workroom. Each set draws the four lanes, the five themes and twenty kinds of source, plus a hatched mark for a kind with no icon yet: thirty icons on a 24-unit grid, in the current text color, so they follow light and dark.

Open which set: A Line, with B Solid for a selected item, is recommended
Each, left to right A Line · B Solid · C Tags

Lanes 4

Practice
Research
Software
Teaching

Themes 5

Conversation and reconstruction
Sensing human behavior
Authoring AI
Architecture
Supporting work

Kinds of source 21

CV
Website
Deck
Repository
Writing
Report
Cover letter
Brochure
Posting
Paper
Lecture
Thesis
Diagram
Newsletter
Catalog
Press release
Portfolio
Proposal
Newspaper article
Position statement
A new kind

Set C's shapes say what kind of thing an icon names: a circle for a lane, a hexagon for a theme, a square for a kind of source. The workroom colors the five themes; here they are in ink, and in v2 those colors would come from the data layer's color-blind-safe set for categories.

v2's own interface icons

The icons v2 draws itself, for its frame: the mark, the light and dark button, presentation, full screen and home. The MCP serves the same six (they come from one file).

A Rough IdeaThe square A. 24 px in every top bar, linking to aroughidea.com.
Switch to darkThe light and dark button in light: it shows the theme it switches to.
Switch to lightThe light and dark button in dark.
Present as slidesStarts presentation mode (data-ds-present).
Full screenTakes the page in and out of full screen. Every page a room might see has one.
HomeThis app's home, where the app's name does not fit. Inside a workshop it goes to the workshop's own page.

Lucide, as the apps use it

The open-source library (ISC license) most of the React and Next.js apps import, often through their component kits. Every icon any app imports is here.

Lucide 1.31.0: 124 icons across 9 apps, the most-used first. Hover a name for the apps that use it.

X8 apps
ChevronDown6 apps
Download6 apps
ChevronRight5 apps
Eye5 apps
Loader25 apps
Settings5 apps
Check4 apps
ChevronUp4 apps
Copy4 apps
Globe4 apps
Plus4 apps
Send4 apps
Sparkles4 apps
Wrench4 apps
ArrowDown3 apps
ArrowLeft3 apps
ArrowRight3 apps
Camera3 apps
ChevronLeft3 apps
Image3 apps
Info3 apps
Link3 apps
LogOut3 apps
Search3 apps
Share23 apps
Square3 apps
AlertCircle2 apps
BookOpen2 apps
CheckCircle2 apps
Circle2 apps
Clock2 apps
Edit22 apps
ExternalLink2 apps
FileText2 apps
GitBranch2 apps
HelpCircle2 apps
MapPin2 apps
MessageSquare2 apps
Mic2 apps
Save2 apps
ShieldCheck2 apps
SlidersHorizontal2 apps
Terminal2 apps
Trash22 apps
Type2 apps
Upload2 apps
User2 apps
Volume22 apps
Wifi2 apps
Activity1 app
AlertTriangle1 app
ArrowBigRight1 app
BarChart21 app
Bike1 app
Bot1 app
Brain1 app
BrainCircuit1 app
Calendar1 app
CameraOff1 app
Car1 app
CheckCircle21 app
ChevronsUpDown1 app
CircleDot1 app
Clapperboard1 app
Clipboard1 app
Code1 app
Code21 app
Contact1 app
CornerDownLeft1 app
Cpu1 app
Database1 app
EyeOff1 app
File1 app
FileJson1 app
FlaskConical1 app
Flower1 app
FolderTree1 app
Globe21 app
Hash1 app
Heart1 app
ImageOff1 app
Layers1 app
LayoutGrid1 app
List1 app
Lock1 app
LogIn1 app
Mail1 app
MapPinned1 app
Maximize1 app
MicOff1 app
Microscope1 app
Minimize21 app
Monitor1 app
Moon1 app
Navigation1 app
Network1 app
Newspaper1 app
Palette1 app
PanelLeft1 app
Paperclip1 app
PersonStanding1 app
Phone1 app
Play1 app
Plug1 app
QrCode1 app
RefreshCw1 app
RotateCcw1 app
Scan1 app
ScanLine1 app
Server1 app
Settings21 app
Shapes1 app
Shield1 app
ShieldAlert1 app
SplitSquareHorizontal1 app
Sun1 app
Target1 app
TreeDeciduous1 app
Undo21 app
UploadCloud1 app
Users1 app
WifiOff1 app
XCircle1 app

Sets the apps draw themselves

AI Research Platform · AppSvgIcon (navigation icons) 9

Own drawing on a 24 grid, stroke 1.8, default size 16. Used in Layout, NavAuthControls, pages/index, TagsAdminPage.

about
search
leads
viz2d
viz3d
add
eval
run
tags

AI Research Platform · One-off inline icons 3

ai-research\components

eye (password hidden; click to show)
eye, slashed (password shown; click to hide)
settings (gear; Feather/Lucide paths)

Semantic Cartographer · Admin page header icon 1

Lucide/Feather "layers" pasted into the server-rendered admin page.

layers (admin header)

DDO demos · One-off inline icons 2

ddo-demos-vis-orgs\src\app\demos\permutation-distances

info (learn more; Feather/Lucide paths)
save SVG

Speculative Journalism · OutletMiniGlyph (publication marks) 8

Eight abstract marks; each outlet name hashes to one (hash % 8). Each is animated with motion/react (drift, bob, spin, pulse); the SVGs here are the resting frame.

variant 0 (two rings, drifting)
variant 1 (two rules, bobbing)
variant 2 (nested squares, spinning)
variant 3 (two arcs, pulsing)
variant 4 (four uprights and a bar)
variant 5 (diamond with a dot, pulsing)
variant 6 (saltire, rocking)
variant 7 (stacked ellipses, stretching)

Virtual Colloquy of Mobiles · Line glyphs (landing cards, admin nav, study reports) 20

The Colloquy's own monochrome line glyphs on a 24 grid. On the landing page the stroke comes from CSS (.card-icon svg: fill none, stroke currentColor, stroke-width 1.6, round caps and joins, 26px), added here as attributes. accounts/index.html repeats several in its side nav at stroke-width 1.8; sim-studies/report.js draws four more "in the landing page's manner".

watch the exhibit (monitor)
guide (open book)
transmitter (broadcast)
sensor demo (eye)
clip player
simulation studies (bar chart)
view gallery (four tiles)
scene studio (cube)
commentary catalog (speech bubble)
clip editor (film strip)
simulation console (faders)
sensor client (camera)
actuator client (sun / gear)
accounts (people)
working gallery (picture)
home (house; accounts side nav)
scatter (sim-studies report card)
grid (sim-studies report card)
list (sim-studies report card)
play (sim-studies report card)

Virtual Colloquy of Mobiles · Scene Studio node-tree icons (Lucide/Feather paths) 11

The file says: "Icons are inline SVG paths from the Lucide icon set (MIT licence)" — older Feather-era geometry (settings, eye, zap, sun, link, package, globe, copy, plus, trash-2).

node: joint
node: sensor
node: actuator
node: indicator
node: link
node: housing
node: world
node: unknown type (fallback square)
duplicate node
add child node
delete node

Virtual Colloquy of Mobiles · Other one-off icons 3

Virtual-Colloquy-of-Mobiles

tap to listen (speaker)
column filter (funnel)
GitHub mark (Continue with GitHub)

ChatPlantUML · Inline SVG icons (Heroicons v1 outline paths) 28

Pasted per component, no icon package; the d-strings are Heroicons v1 (24px outline, stroke-width 2). Spinners are Tailwind's docs spinner.

clipboard (no assessment yet)
paper airplane (send refinement)
lightning bolt (no suggestions yet)
cog (settings)
sun (light theme)
moon (dark theme)
share
code (toggle UML editor)
GitHub mark (sign in)
clock (versions)
cursor click (reset view)
exclamation triangle (warning)
photograph (no diagram)
download SVG
thumb up (good result)
thumb down (poor result)
check (rendered)
x (syntax error)
check, bold (CheckIcon)
dot (DotIcon)
plus
arrow narrow right (add)
spinner (clarifying)
sparkles (clarify)
chevron down (rotates when open)
refresh (reset goal)
spinner (drafting)
exclamation circle (error)

Relatio · CustomIcons (map-view icons) 2

Two hand-drawn icons beside its Lucide set, for map views Lucide has no glyph for. Props size=24, color=currentColor.

BareTreeIcon (tree view)
EdgeBundleIcon (bundle view)

OpticEvade · Map marker 1

Lucide "cctv" paths in red, base64-encoded into a Leaflet marker icon for surveillance cameras.

camera marker (cctv, red)

Agent Design Studio · AgenticComponentIcon (flow-component marks) 10

The marks a flow component declares (ICON_IDS), 16 grid, stroke 1.25, chosen to differ in silhouette at 9-16px. Unknown ids get a plain square.

chat-in
chat-out
text
number
tool
model
monitor
outputs
library
unknown (fallback square)

Agent Design Studio · One-off inline icons 18

Drawn per component. The four system-instruction buttons animate a dashed stroke at rest and go solid on hover; the solid form is recorded.

about (info circle)
save (floppy disk)
system diagram (flow, rotated)
close (x)
menu (hamburger)
GitHub mark (sign in)
QR code (Feather/Lucide paths)
download conversation (Feather/Lucide paths)
agent configuration (gear; Feather/Lucide paths)
fullscreen (enter)
fullscreen (exit)
clear system instructions
basic instructions (document)
serious instructions (shield)
crazy instructions (star)
knowledge chunk (layers)
new session (plus; Heroicons v1)
delete session (trash; Heroicons v1)

autoresearch demo · Inline icons in chat.py's page 1

The chart key (kept, best so far, on show, off the scale) is drawn there too but is a legend, not an icon.

external link (arrow up-right)

Letterly · ui/icons.tsx 22

Twenty-one icon components; all but DiagramIcon are Lucide paths copied by hand (older Lucide versions), the package is not a dependency.

SparklesIcon
CopyIcon
CheckIcon
EraserIcon
UserIcon
PenToolIcon
SendIcon
ChevronLeftIcon
ChevronRightIcon
InfoIcon
SettingsIcon
TeamIcon
BeakerIcon
PlayIcon
DownloadIcon
StopIcon
PlusIcon
SaveIcon
ArrowLeftIcon
RefreshIcon
DiagramIcon
chevron down (model selector)

MDES Exhibition Planner · Tagline workspace inline icons 3

The 32px wave beside "Project Tagline Generator" is a header mark and is left out.

spinner (generating)
beaker (generate new taglines; Heroicons v1)
exclamation circle (error; Heroicons v1)

OpenRouter registry · Inline icons 5

RegistryIcon (the nav-bar mark) is byte-identical to the favicon and is left out.

GitHub mark (admin sign-in)
eye off (hide password; Feather)
eye (show password; Feather)
pulsing dots (thinking)
spinner (tool running)

Other icon libraries

LibraryAppsIcons
Unicode glyphs as iconsAI Research Platform, Semantic Cartographer, DDO demos, Speculative Journalism, Virtual Colloquy of Mobiles, ChatPlantUML, Relatio, Design System MCP demo, LLM Explorables, Agent Design Studio, Letterly, Timetables, MDES Exhibition Planner, Platform shell, OpenRouter registry✓ done / correct, ✗ error / wrong, ○ pending, ◉ running, × close / remove, ✕ close (modals), ▲ collapse, ▼ expand, ↕ sortable column, ↗ go to website, ↺ refresh, ▶ new run, ⚙ running / settings, ⇄ flip source and target, ● status dot (system diagram key), ⚠ warning, ↻ refresh (admin), ● job status dot (admin), → workflow arrow (admin), ↗ open in new tab (admin), ▼ / ▲ collapse toggle, ▶ collapsed section, → arrow icon (interpretations), ← home (back button), ✓ / ✗ check passed / failed (admin), ✔ / ✖ URL reachable / not (admin), ◼ done / stream closed (sweep log), ▶ starting sweep (log), ▼ disclosure (rotates when open), ▸ disclosure (rotates when open), ▾ details summary, ▲ expanded stage, ★ auto edition, ⌖ sorted from location, ⚡ fast path (eval diagram), ⚠ warning (log), ← / → previous / next page (admin), ✕ remove / delete, ▾ dropdown / open disclosure, ▸ closed disclosure (also CSS ::before in demo/styles.css), ☀ light theme (theme toggle), ▶ play, ■ stop, ❚❚ pause, ◀◀ reverse, ⏮ restart, ▲ / ▼ move up / down, sort ascending / descending, ✓ / ✗ boolean true / false, ⇅ sortable column, ● status dot, ▤ document (guide heading), ← back (All docs), ∗ access grant, ← back to the app (admin), ↑ / ↓ sort direction, ▶ run test / collapsed toggle, ✓ pass, ✗ fail, ! error, ⏳ running / calling, ⚠ warning / reset to defaults, ⬇ download / export design system, ⬆ import design system / drop zone, ✶ generate from website, ⬡ view schema / coming soon, ✦ empty preview, ◇ empty preview, ◈ gallery sample, ✨ generated design system, ⚙ agent settings, ⏹ stop, ▼ / ▶ group collapse chevron, ▾ / ▸ toggle, ↳ cached / cache write, ↺ loop (diagram), ↓ flow arrow (diagram), ← back to the demo, × remove step, ‹ › pagination, ↗ external link, see explorablesGlyphs, ✕ close, ⓘ node info, ▸ disclosure (run log, panels), ⚠ generated-page warning, × remove, ↑ / ↓ move up / down, ✎ edit, ✓ check / added, ✦ generate / avatar fallback, ⚙ settings, ◀ / ▶ previous / next session, ⛶ fullscreen, ‹ back to the flow gallery, × close, ✓ / ✗ pass / fail, ↺ reset, ▼ / ▲ / ▶ expand chevrons, → chain arrow, ↗ external link (CSS ::after, AgentModelSettings.module.css), › details summary marker (CSS ::before, LetterApp.module.css), × close panel, ↗ preview / external link, ↶ undo, ↷ redo, ◉ public, ○ private, ◧ toggle outline (left panel), ◨ toggle tools (right panel), ▤ document settings, □ calendar, ↔ crossover (outline), ◆ milestone (outline), ⬇ export SVG, ▼ / ▶ collapse, ↗ open standalone, → enter (ENTER THE COLLOQUY →), ← back links, → next / browse, ▶ collapsed (rotates 90° open), ✓ / ✗ connected / failed, ↓ scroll to bottom, ↻ sync, ‹ / › previous / next chat, ⇅ / ↑ / ↓ sort
Emoji as iconsAI Research Platform, DDO demos, Virtual Colloquy of Mobiles, ChatPlantUML, Design System MCP demo, Agent Design Studio, OpenRouter registry📋 submission log, 🟢 successes, 🔴 failures, ⬇️ download failed prompts, 🧠 start label run, ⏳ pending, 🎲 generate random, 🌙 dark theme (theme toggle), 👍 good answer, 👎 poor answer, ✅ allowed, ❌ no access, ⚪ works but nothing saved, 💡 flash mode, 🔊 sound mode, 📚 cited source, 👁 show password, 👍 helpful (admin), 👎 not helpful (admin), 📋 Test Suite, 🔍 Test Inspector, 📦 Batch, 🔧 Tool Explorer, 💬 Prompt Lab, 🔗 Playground, 🤖 Agents, 📊 Metrics, 🟢 user input (diagram key), 🟡 request packet (diagram key), 🔵 LLM processing (diagram key), 📷 scan with camera, 🪪 agent card, 🗑 delete chat, 🔑 Clients, 📊 Usage, 🗂 Model Registry, 🔍 Model Resolution, 🔌 MCP Protocol, 💬 Registry Chat
@mui/icons-material ^7.1.0Semantic CartographerHelpOutline, ExpandMore, InfoOutlined, ViewInAr, Link, AdminPanelSettings, Search, Menu, List
Material Symbols Outlined (Google Fonts, loaded at runtime by src/app/page.tsx)DDO demosscatter_plot, grid_4x4, view_in_ar, photo_size_select_actual, donut_large, pan_tool_alt, 3d_rotation, texture, route, hexagon, show_chart, mist
@mui/icons-material ^7.1.1 (declared in package.json, never imported)DDO demos
Heroicons v1 outline (24px paths pasted inline as SVG; no package)ChatPlantUMLclipboard, paper-airplane, lightning-bolt, cog, sun, moon, share, code, clock, cursor-click, exclamation, photograph, download, thumb-up, thumb-down, check, x, plus, arrow-narrow-right, sparkles, chevron-down, refresh, exclamation-circle
Material Symbols Outlined (Google Fonts link in public/SemanticScout.html)Semantic Scoutlight_mode, dark_mode
VitePress 1.6.4 default-theme icons (vpi-* CSS masks, Lucide-derived; which ones show depends on the page)Workshops, Prototyping Toolkitalign-left, arrow-down, arrow-left, arrow-right, arrow-up, chevron-down, chevron-left, chevron-right, chevron-up, corner-down-left, delete, heart, languages, layout-list, moon, more-horizontal, plus, search, square-pen, sun
Material Symbols (Google, Apache 2.0) — one glyph inlined as SVG, no fontLLM Explorablesinfo (rag/src/initUI.js INFO_ICON)
@mui/icons-material ^7.3.7TimeTwinGitHub
Material Symbols Outlined (Google Fonts link in index.html, icon_names=volume_off,volume_up)Orbital Chronosvolume_up, volume_off
@heroicons/react ^2.2.0DFN Teams24/outline: ChartBarIcon, BeakerIcon, CloudArrowUpIcon, UserIcon, TableCellsIcon, ArrowsUpDownIcon, RectangleGroupIcon, Square3Stack3DIcon, ArrowDownTrayIcon, ChevronUpIcon, ChevronDownIcon, 24/solid: BookOpenIcon, ChatBubbleBottomCenterTextIcon, DocumentTextIcon, PresentationChartBarIcon, FilmIcon, UserGroupIcon, VideoCameraIcon, SpeakerWaveIcon, WrenchScrewdriverIcon, ArrowDownTrayIcon
Heroicons v1 outline (paths pasted inline)MDES Exhibition Plannerbeaker, exclamation-circle

The explorables' glyphs

LLM Explorables uses text characters as icons, and draws two of its own.

‹
previous (preset, example, prompt, walkthrough step)completions/src/initUI.js:464 #preset_prev; tokens/src/initUI.js:71 #example_prev; rag/src/initUI.js:111 #prompt_prev; training/index.html:712 #present_prev and :715 .bar-prev; try-a-model/index.html:111 #pv and :114 #pv2
›
next (preset, example, prompt, walkthrough step)completions/src/initUI.js:469 #preset_next; tokens/src/initUI.js:83 #example_next; rag/src/initUI.js:112 #prompt_next; training/index.html:713 #present_next and :722 .bar-next; try-a-model/index.html:112 #nx and :120 #nx2
←
previous experimenttraining/index.html:627 #c_prev
→
next experiment; "onward" on text links; arrow between workflow cellstraining/index.html:628 #c_next; completions/src/initUI.js:375 #tokens_link "its vocabulary →"; tokens-by-model/src/Main.js:450 "See every token in the field →"; admin/admin.css:49 .workflow-cell::after content "→"
+
more passages (top K up)rag/src/initUI.js:133 #k_more
−
fewer passages (top K down; U+2212 minus)rag/src/initUI.js:131 #k_less
▲
passages above the line are sent to the modelrag/src/Main.js:595
▼
passages below the line are left outrag/src/Main.js:596
▸
fold closed (disclosure)training/style.css:95 .fold > summary .sub::before
▾
fold open (disclosure)training/style.css:96 .fold[open] > summary .sub::before
↻
loop label (the agent's loop)training/style.css:369 .loop-label::before
↑ ↓
direction of a step in the admin Instructions workflow diagramadmin/src/ui/instructions.js:109
✓
check passed (admin Model Set Test, catalogue vocabulary badge)admin/src/ui/modelSet.js:28-33; admin/src/ui/modelCatalogue.js:77
◌
partial letter / empty token piecetraining/src/page.js:125 .partial-mark; training/src/tabVocabulary.js:52; training/src/tabRecipe.js:118
␣
a space inside a vocabulary piecetraining/src/tabVocabulary.js:52
_
a space in a token (completions candidates)shared/getNonDisplayCharacterNam.js charNames[" "]; control characters render as words such as <line feed>
⌂
home — RETIRED: now an SVG house (Toolbar.HOME_ICON); the glyph survives only in commentscompletions/src/initUI.js:430, tokens/src/initUI.js:16, temperature/src/Main.js:351 (comments)
◐
colour scale — RETIRED: the button face is now a gradient swatch span (.scale_swatch, ProbabilityScale.gradient()); the glyph survives only in a commenttemperature/src/Main.js:1116 (comment); shared/ColorControls.js swatch()
↗
external link — drawn as an SVG, not a text glyph (see "external link" below)index.html:177, training/index.html:43, :699, :706
homeshared/Toolbar.js HOME_ICON (#home_link, every explorable)
full screen (enter)shared/Fullscreen.js ENTER_ICON (#fullscreen_toggle; training .bar-full)
full screen (leave)shared/Fullscreen.js EXIT_ICON
A
coloured prompt (A over three stripes)shared/ColorControls.js promptIcon() (#prompt_colors_toggle); stripe colours come from ProbabilityScale.stripes() — shown here for viridis, the default (#482474, #23908c, #dde328 at 0.1, 0.5, 0.95)
undefined
colour scale swatchshared/ColorControls.js swatch() (#color_scale_toggle) — a CSS gradient, not an SVG
select caretcompletions/style.css:177 and temperature/style.css:71 (data-URI background of the model caption select)
busy-wait ringcompletions/src/Main.js:1079 busyWaitHtml (classes only; stroke 2.5, the 0.25 track and the rotate(-90deg) come from completions/style.css .busy_wait_*; the fill drains from stroke-dashoffset 0 to 100 over the wait, shown here a quarter drained)
external link (arrow up-right)index.html:177, training/index.html:43, :699, :706 (.ext: 11px, stroke 2.4 from CSS)
theme: sunindex.html:183 (.knob svg, 12px, fill from CSS)
theme: moonindex.html:184 (.knob svg)
menuindex.html:192 #menu_button (16px)
info (Material Symbols)rag/src/initUI.js INFO_ICON (the ⓘ buttons that open popovers)
response (speech bubble)rag/src/initUI.js RESPONSE_ICON (the LLM Response column button)
passage (layers)rag/src/Main.js:484 CHUNK_ICON (knowledge-base tiles)
open full diagram (expand)training/index.html:479 #re_full_open (.expand svg, 14px, stroke from CSS)
back to small diagram (collapse)training/index.html:737 #re_full_close and :928 .stages-close

The apps' own icons

Each app's favicon and icon. These stay with their apps (decided with the mark); they are here for the family resemblance, and as what an icon set should sit beside.

A Rough Idea
A Rough Idea
Agent Design Studio
Agent Design Studio
AI Research
AI Research
ChatPlantUML
ChatPlantUML
Colloquy of Mobiles
Colloquy of Mobiles
DDO demos
DDO demos
Design System MCP
Design System MCP
DFN Teams
DFN Teams
GraphWise
GraphWise
Letterly
Letterly
LingoLink
LingoLink
LLM Explorables
LLM Explorables
MDES Exhibition Planner
MDES Exhibition Planner
Obscura Designer
Obscura Designer
OpenRouter registry
OpenRouter registry
Orbital Chronos
Orbital Chronos
QR Studio
QR Studio
Relatio
Relatio
Semantic Cartographer
Semantic Cartographer
Speculative Journalism
Speculative Journalism
Timetables
Timetables

Choosing

What the survey found: nine apps already use Lucide (124 different icons), and several sets that look custom are copies of it or of Heroicons, pasted in by hand. The sets the apps truly draw themselves name their own content (the Colloquy's glyphs, Speculative Journalism's outlet marks, Agent Studio's flow marks) rather than interface actions. The portfolio's drafts draw A Rough Idea's own concepts, which no library has.

JobRecommendedWhy
Interface actions: close, menus, download, copy, arrowsLucide, one library for every appAlready the most used; open license; its plain line drawing suits Margin; the hand-copied sets become one package.
A Rough Idea's own concepts: lanes, themes, kinds of sourceThe portfolio draft's A Line, with B Solid for a selected itemNo library draws these; redrawn at Lucide's line weight so the two sit together.
Marks that are an app's contentStay with their appsLike the apps' own icons: the Colloquy's glyphs, Speculative Journalism's outlets, Agent Studio's flow marks.
Signals inside textStay as text: → ▾ ↗They are the guide's small marks for what happens next; other glyphs used as buttons give way to icons as each app is aligned.
Recommended the four rows aboveOpen TJ's choice

One weight for every line icon would follow: a role for the stroke, so it changes in one place like everything else. Set C (Tags) stays available for compact labels in dense tables.