---
name: Aesthetic Web Design
description: >
Apply professional, premium UI/UX design standards when building or styling
web interfaces. Use this skill when the user asks to create a website, landing
page, web app, dashboard, UI component, or any visual interface — or when they
ask to make something look better, more professional, or more beautiful. Covers
visual hierarchy, typography, color systems, layout, spacing, motion, dark mode,
responsive design, and conversion patterns. Activate even when the user doesn't
say "design" — if they're building a web frontend, these standards apply.
triggers:
- "make it look better"
- "make it beautiful"
- "design system"
- "UI design"
- "web design"
- "visual design"
- "premium design"
- "styling"
- "interface design"
- "brand design"
- "typography"
- "color palette"
negatives:
- "animation"
- "motion design"
- "component library"
- "React component"
- "Vue component"
- "conversion optimization" # use landing-craft
- "responsive layout" # use responsive-engine
- "animation" # use motion-craft
- "micro-interactions" # use emil-design-eng
- "component implementation" # use component-forge
license: MIT
compatibility: opencode
metadata:
workflow: frontend
audience: designers
version: "1.0.0"
Register Distinction
Every design task is either Brand or Product.
Register
Scope
Bar
Approach
Brand
Marketing, landing pages, campaign surfaces, portfolios, long-form content. Design IS the product.
Distinctiveness. Must stand out from competitors.
Full creative range. Editorial, luxury, brutalist, cinematic — any visual lane.
Product
App UI, admin, dashboards, developer tools. Design SERVES the product.
Earned familiarity. Users of Linear, Stripe, Vercel should trust it.
Restrained. Clean. Fast. One palette. Predictable patterns.
Identify before designing. Priority: (1) task cue ("landing page" vs "dashboard"), (2) surface in focus, (3) project context. First match wins.
Do treat Warm Cream (#f5f2ec) or Dark (#080808) as default background. Never flat white.
Do use OKLCH for all new color declarations.
Do apply grain overlay (opacity 0.03-0.06) on atmospheric backgrounds.
Do use oversized display typography (clamp(48px, 7vw, 96px) or larger).
Do caps body line length at 65-75ch via max-width.
Do use Lucide or Phosphor for icons. SVG only.
Do respect prefers-reduced-motion on every animation.
Do test at 320px, 768px, 1024px, 1440px.
Don't:
Don't use pure black (#000) or pure white (#fff). Tint every neutral.
Don't use border-left > 1px as a colored accent. Immediate AI-dashboard tell.
Don't use background-clip: text with gradient. Decorative, never meaningful.
Don't use glassmorphism as default. Rare and purposeful, or nothing.
Don't use the hero-metric template (big number + small label + gradient). SaaS cliché.
Don't use identical card grids (same-sized cards with icon + heading + text).
Don't use Inter as a display/headline font.
Don't use emoji as icons.
Don't use bounce or elastic easing on functional UI.
Don't nest cards inside cards. Flatten the hierarchy.
Don't center hero text. Left-aligned text + right visual.
Don't animate width, height, top, left. Use transform and opacity.
Pre-Delivery Checklist
Background has texture/atmosphere — not a flat solid color
Display font is editorial serif or bold condensed display — not Inter
Headline oversized (clamp(48px, 7vw, 96px) or larger)
Scroll has at least one effect: parallax, reveal, 3D, or horizontal text
Color palette matches one of the 4 directions — no generic blue/grey
OKLCH used for all new colors
No emoji icons — Lucide/Phosphor only
Product screenshots floating/tilted — not centered in flat box
Grain overlay present on atmospheric backgrounds (opacity 0.03-0.06)
All interactive elements have hover/active/focus states
Button press: scale(0.97) on :active, 160ms ease-out
Mobile: touch targets 44px+, body 16px+ min, single-column
min-h-[100dvh] used for full-screen sections
Line length capped at 65-75ch
One accent ≤ 10% of any screen
No border-left > 1px as colored accent
No gradient text
No bounce/elastic easing on UI
prefers-reduced-motion respected
Empty, loading, error, and success states all rendered
Sources
Structured.money — Editorial luxury design
Leonardo.AI — 3D perspective typography
Monopo — Dark atmospheric design
Steep.app — Gradient mesh backgrounds
Cori Corinne — Editorial serif design
OKLCH color space (oklch.com)
Emil Kowalski — Design engineering philosophy
WCAG 2.2 — Accessibility guidelines
Workflow
Step 1: Identify register
Determine Brand vs Product before any design decision. Brand = marketing, landing pages, portfolio (design IS the product). Product = dashboards, admin, tools (design SERVES the product). This single choice controls the entire creative range.
Step 2: Select color direction
Choose one of the 4 directions: Dark+accent, Deep navy+spotlight, Cream editorial, Warm mesh. Never mix directions. Every color from this point flows from the chosen palette. Write all new colors in OKLCH with hex fallbacks.
Step 3: Choose typography pair
Pick display font: editorial serif (Canela, DM Serif Display, Playfair) or bold display sans (Cabinet Grotesk, Bebas Neue, Space Grotesk)
Pick body font: DM Sans, Geist, or Inter (body only — never as headline)
Set fluid type scale via CSS custom properties with clamp()
Step 4: Build atmospheric background
Apply gradient mesh or illustrated scene — never a flat solid color
Add grain overlay (opacity 0.03-0.06) as ::after pseudo-element
Error handling section covers common failure modes
All referenced files (references/, scripts/, assets/) exist
Skill triggers correctly for intended use cases
No broken links or missing resources
1---2name: aesthetic-web3description: ---4---5---6name: Aesthetic Web Design7description: >8 Apply professional, premium UI/UX design standards when building or styling9 web interfaces. Use this skill when the user asks to create a website, landing10 page, web app, dashboard, UI component, or any visual interface — or when they11 ask to make something look better, more professional, or more beautiful. Covers12 visual hierarchy, typography, color systems, layout, spacing, motion, dark mode,13 responsive design, and conversion patterns. Activate even when the user doesn't14 say "design" — if they're building a web frontend, these standards apply.15triggers:16 - "make it look better"17 - "make it beautiful"18 - "design system"19 - "UI design"20 - "web design"21 - "visual design"22 - "premium design"23 - "styling"24 - "interface design"25 - "brand design"26 - "typography"27 - "color palette"28negatives:29 - "animation"30 - "motion design"31 - "component library"32 - "React component"33 - "Vue component"34 - "conversion optimization" # use landing-craft35 - "responsive layout" # use responsive-engine36 - "animation" # use motion-craft37 - "micro-interactions" # use emil-design-eng38 - "component implementation" # use component-forge39license: MIT40compatibility: opencode41metadata:42 workflow: frontend43 audience: designers44 version: "1.0.0"45---4647## Register Distinction4849Every design task is either **Brand** or **Product**.5051| Register | Scope | Bar | Approach |52|----------|-------|-----|----------|53| Brand | Marketing, landing pages, campaign surfaces, portfolios, long-form content. Design IS the product. | Distinctiveness. Must stand out from competitors. | Full creative range. Editorial, luxury, brutalist, cinematic — any visual lane. |54| Product | App UI, admin, dashboards, developer tools. Design SERVES the product. | Earned familiarity. Users of Linear, Stripe, Vercel should trust it. | Restrained. Clean. Fast. One palette. Predictable patterns. |5556Identify before designing. Priority: (1) task cue ("landing page" vs "dashboard"), (2) surface in focus, (3) project context. First match wins.5758---5960## 1. Typography — The Main Visual Element6162### Display fonts by direction6364**Editorial serif** (Structured.money, Cori Corinne, Steep.app):65- Canela (preferred, premium license) — high contrast, editorial66- DM Serif Display (free) — elegant, sharp serifs67- Cormorant Garamond (free) — ultra-high contrast, ultra-luxury68- Playfair Display (free) — classic editorial69- Fraunces (free) — optical-size variable, editorial/vintage7071**Bold display sans** (Leonardo.AI, Monopo):72- Neue Haas Grotesk Display — definitive display grotesque73- Cabinet Grotesk (free) — wide, excellent for oversized headlines74- Bebas Neue (free) — all-caps condensed75- Anton (free) — punchy, condensed76- Space Grotesk (free) — tech/futuristic7778**Body/UI text** (never as display, never Inter as headline):79- DM Sans (free, pairs with DM Serif Display)80- Geist (free, clean, modern)81- Inter (free, body text only)8283### Oversized typography8485```css86.display-hero {87 font-size: clamp(80px, 12vw, 180px);88 line-height: 0.9;89 letter-spacing: -0.03em;90 font-weight: 700;91}9293.bleed-text {94 font-size: clamp(120px, 18vw, 280px);95 line-height: 0.85;96 white-space: nowrap;97 overflow: hidden;98 letter-spacing: -0.04em;99}100101.mixed-headline {102 font-size: clamp(40px, 6vw, 96px);103 font-weight: 600;104 line-height: 1.05;105}106.mixed-headline em {107 font-style: italic;108 font-weight: 400;109}110```111112### Fluid type scale113114```css115:root {116 --text-body: clamp(15px, 1.1vw, 18px);117 --text-lead: clamp(18px, 1.5vw, 24px);118 --text-h3: clamp(22px, 2vw, 32px);119 --text-h2: clamp(30px, 3.5vw, 56px);120 --text-h1: clamp(48px, 7vw, 96px);121 --text-display: clamp(80px, 12vw, 180px);122 --text-bleed: clamp(120px, 18vw, 280px);123}124```125126---127128## 2. Color System (OKLCH)129130All new colors in OKLCH. High chroma at extremes looks garish — reduce chroma as lightness approaches 0 or 100.131132### Direction 1: Dark + accent (Leonardo.AI, tech)133134```css135--bg: #080808;136--bg-surface: oklch(15% 0 0);137--text: #f0ede8;138--text-muted: oklch(60% 0 0);139--accent: oklch(55% 0.2 270);140--border: oklch(25% 0 0);141```142143### Direction 2: Deep navy + spotlight (Notion)144145```css146--bg: oklch(12% 0.05 260);147--text: #ffffff;148--text-muted: oklch(65% 0 0);149--accent: oklch(55% 0.2 260);150--spotlight: oklch(50% 0.2 260 / 0.3);151```152153### Direction 3: Cream editorial (Structured.money, Cori Corinne)154155```css156--bg: #f5f2ec;157--bg-surface: #ede9e0;158--text: #0a0a0a;159--text-muted: #5a5550;160--accent: #1a1a1a;161--border: oklch(85% 0 0);162```163164### Direction 4: Warm mesh (Steep.app)165166```css167--bg: #fdf6ef;168--text: #1a1412;169--accent: #c8502a;170--mesh-1: oklch(70% 0.15 30 / 0.3);171--mesh-2: oklch(70% 0.15 280 / 0.25);172```173174**Color rules (all directions):**175- Never pure `#000` or `#fff`. Tint every neutral (chroma 0.005-0.01 is enough).176- One accent ≤ 10% of any screen. Scarcity is the design choice.177- OKLCH for all new colors. Hex only for legacy values.178179---180181## 3. Backgrounds — Atmospheric, Never Flat182183### Gradient mesh184185```css186.mesh-light {187 background: #fdf6ef;188 background-image:189 radial-gradient(ellipse 80% 60% at 20% 30%, rgba(255, 180, 150, 0.5) 0%, transparent 60%),190 radial-gradient(ellipse 60% 80% at 80% 70%, rgba(180, 160, 255, 0.4) 0%, transparent 60%),191 radial-gradient(ellipse 70% 50% at 50% 10%, rgba(255, 220, 180, 0.3) 0%, transparent 60%);192}193194.mesh-dark {195 background: #080c1a;196 background-image:197 radial-gradient(ellipse 60% 80% at 10% 20%, oklch(30% 0.15 260 / 0.6) 0%, transparent 55%),198 radial-gradient(ellipse 70% 60% at 90% 80%, oklch(50% 0.2 20 / 0.5) 0%, transparent 55%),199 radial-gradient(ellipse 50% 40% at 50% 50%, oklch(5% 0.02 260 / 0.7) 0%, transparent 60%);200}201```202203### Grain/noise overlay204205```css206.grain::after {207 content: '';208 position: fixed;209 inset: 0;210 pointer-events: none;211 z-index: 9999;212 opacity: 0.04;213 background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");214 background-repeat: repeat;215 background-size: 200px 200px;216}217```218219---220221## 4. Scroll Effects — 3D and Parallax222223### 3D perspective typography (Leonardo.AI)224225```css226.perspective-container {227 perspective: 800px;228 perspective-origin: 50% 50%;229 overflow: hidden;230}231232.text-3d-top {233 transform: rotateX(35deg) translateY(-20px);234 transform-origin: center bottom;235}236.text-3d-bottom {237 transform: rotateX(-35deg) translateY(20px);238 transform-origin: center top;239}240```241242### Scroll-driven parallax243244```js245const layers = document.querySelectorAll('[data-parallax]')246window.addEventListener('scroll', () => {247 const scrollY = window.scrollY248 layers.forEach(layer => {249 const speed = parseFloat(layer.dataset.parallax) || 0.3250 layer.style.transform = `translateY(${scrollY * speed}px)`251 })252})253```254255### Smooth scroll entrance256257```css258.reveal {259 opacity: 0;260 transform: translateY(40px);261 transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);262}263.reveal.visible {264 opacity: 1;265 transform: translateY(0);266}267```268269---270271## 5. Floating Product Screenshots272273```css274.screenshot-float {275 border-radius: 12px;276 box-shadow:277 0 24px 80px rgba(0, 0, 0, 0.25),278 0 4px 16px rgba(0, 0, 0, 0.15);279 position: absolute;280}281282.screenshot-left {283 left: -40px;284 top: 15%;285 transform: rotate(-4deg);286 width: 280px;287}288289.screenshot-right {290 right: -40px;291 top: 25%;292 transform: rotate(3deg);293 width: 300px;294}295296@keyframes float {297 0%, 100% { transform: translateY(0px) rotate(-4deg); }298 50% { transform: translateY(-12px) rotate(-4deg); }299}300```301302---303304## 6. Spacing and Layout305306- Section padding: `clamp(80px, 12vh, 160px)` top and bottom307- Max content width: 1400px for app, 900px for editorial308- Hero padding: 0 — let content breathe309310**Breaking the grid:**311- Text bleeds off left: `margin-left: -5vw`312- Full-bleed section: `width: 100vw; margin-left: calc(-50vw + 50%)`313- Overlapping sections: negative `margin-top` on next section314315---316317## 7. Motion Standards318319| Element | Duration | Easing |320|---------|----------|--------|321| Hover state | 120-160ms | `cubic-bezier(0.23, 1, 0.32, 1)` |322| Button press | 160ms | `cubic-bezier(0.23, 1, 0.32, 1)` |323| Scroll reveal | 600-800ms | `cubic-bezier(0.16, 1, 0.3, 1)` |324| 3D scroll transform | No duration — driven by scroll position | — |325326```css327--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);328--ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);329```330331---332333## 8. Do's and Don'ts334335### Do:336- **Do** treat Warm Cream (#f5f2ec) or Dark (#080808) as default background. Never flat white.337- **Do** use OKLCH for all new color declarations.338- **Do** apply grain overlay (opacity 0.03-0.06) on atmospheric backgrounds.339- **Do** use oversized display typography (`clamp(48px, 7vw, 96px)` or larger).340- **Do** caps body line length at 65-75ch via `max-width`.341- **Do** use Lucide or Phosphor for icons. SVG only.342- **Do** respect `prefers-reduced-motion` on every animation.343- **Do** test at 320px, 768px, 1024px, 1440px.344345### Don't:346- **Don't** use pure black (#000) or pure white (#fff). Tint every neutral.347- **Don't** use `border-left` > 1px as a colored accent. Immediate AI-dashboard tell.348- **Don't** use `background-clip: text` with gradient. Decorative, never meaningful.349- **Don't** use glassmorphism as default. Rare and purposeful, or nothing.350- **Don't** use the hero-metric template (big number + small label + gradient). SaaS cliché.351- **Don't** use identical card grids (same-sized cards with icon + heading + text).352- **Don't** use Inter as a display/headline font.353- **Don't** use emoji as icons.354- **Don't** use bounce or elastic easing on functional UI.355- **Don't** nest cards inside cards. Flatten the hierarchy.356- **Don't** center hero text. Left-aligned text + right visual.357- **Don't** animate `width`, `height`, `top`, `left`. Use `transform` and `opacity`.358359---360361## Pre-Delivery Checklist362363- [ ] Background has texture/atmosphere — not a flat solid color364- [ ] Display font is editorial serif or bold condensed display — not Inter365- [ ] Headline oversized (`clamp(48px, 7vw, 96px)` or larger)366- [ ] Scroll has at least one effect: parallax, reveal, 3D, or horizontal text367- [ ] Color palette matches one of the 4 directions — no generic blue/grey368- [ ] OKLCH used for all new colors369- [ ] No emoji icons — Lucide/Phosphor only370- [ ] Product screenshots floating/tilted — not centered in flat box371- [ ] Grain overlay present on atmospheric backgrounds (opacity 0.03-0.06)372- [ ] All interactive elements have hover/active/focus states373- [ ] Button press: `scale(0.97)` on `:active`, 160ms ease-out374- [ ] Mobile: touch targets 44px+, body 16px+ min, single-column375- [ ] `min-h-[100dvh]` used for full-screen sections376- [ ] Line length capped at 65-75ch377- [ ] One accent ≤ 10% of any screen378- [ ] No `border-left` > 1px as colored accent379- [ ] No gradient text380- [ ] No bounce/elastic easing on UI381- [ ] `prefers-reduced-motion` respected382- [ ] Empty, loading, error, and success states all rendered383384---385386## Sources387388- Structured.money — Editorial luxury design389- Leonardo.AI — 3D perspective typography390- Monopo — Dark atmospheric design391- Steep.app — Gradient mesh backgrounds392- Cori Corinne — Editorial serif design393- OKLCH color space (oklch.com)394- Emil Kowalski — Design engineering philosophy395- WCAG 2.2 — Accessibility guidelines396397## Workflow398399### Step 1: Identify register400401Determine Brand vs Product before any design decision. Brand = marketing, landing pages, portfolio (design IS the product). Product = dashboards, admin, tools (design SERVES the product). This single choice controls the entire creative range.402403### Step 2: Select color direction404405Choose one of the 4 directions: Dark+accent, Deep navy+spotlight, Cream editorial, Warm mesh. Never mix directions. Every color from this point flows from the chosen palette. Write all new colors in OKLCH with hex fallbacks.406407### Step 3: Choose typography pair4084091. Pick display font: editorial serif (Canela, DM Serif Display, Playfair) or bold display sans (Cabinet Grotesk, Bebas Neue, Space Grotesk)4102. Pick body font: DM Sans, Geist, or Inter (body only — never as headline)4113. Set fluid type scale via CSS custom properties with `clamp()`412413### Step 4: Build atmospheric background4144151. Apply gradient mesh or illustrated scene — never a flat solid color4162. Add grain overlay (opacity 0.03-0.06) as `::after` pseudo-element4173. Dark (#080808) or cream (#f5f2ec) base layer418419### Step 5: Compose layout and hero4204211. Oversized hero headline: `clamp(48px, 7vw, 96px)` minimum4222. Left-aligned hero text with visual on the right — never center-aligned4233. Floating/tilted product screenshots with box-shadow depth4244. Line length capped at 65-75ch via `max-width`4255. One accent color <= 10% of any screen426427### Step 6: Add motion and polish4284291. Scroll effects: parallax, reveal (opacity + translateY), or 3D perspective4302. Button press: `scale(0.97)` on `:active`, 160ms ease-out4313. Hover states: 120-160ms `cubic-bezier(0.23, 1, 0.32, 1)`4324. Respect `prefers-reduced-motion` on every animation4335. Run the Pre-Delivery Checklist before shipping434435## Error Handling436437| Cause | Fix |438|-------|-----|439| Gradient mesh shows harsh color banding on low-quality displays | Add grain overlay (opacity 0.02-0.04) to dither banding. Use larger radial-gradient spreads (80-100% of ellipse). Reduce chroma at gradient edges |440| Custom display font (Canela, DM Serif) fails to load on slow connections | Always set `font-display: swap` with system serif fallback stack. Preload woff2 in `<head>`: `<link rel="preload" as="font" href="..." crossorigin>` |441| 3D perspective text clips or cuts off at viewport edges | Set `overflow: hidden` on perspective container. Add padding >= 50% of perspective offset. Test at 320px width |442| Grain SVG overlay causes scroll jank on low-end mobile (GPU overdraw) | Reduce grain to `background-size: 100px 100px`, opacity to 0.02. Disable grain entirely below 768px via `@media (max-width: 767px)` |443| OKLCH colors render as black/white in older Safari (< 15.4) | Provide hex fallback before each OKLCH value: `color: #f5f2ec; color: oklch(96% 0.005 0)`. Same for all OKLCH declarations |444| Floating screenshot overflows parent container on mobile | Remove `position: absolute`, negative offsets, and rotations below 768px. Stack screenshots vertically with standard spacing |445| Scroll reveal animation triggers CLS (Layout Shift) regression | Reserve space with `min-height` or `aspect-ratio` before reveal fires. Never use `display: none` to hide elements before reveal — use `opacity` and `visibility` |446| Glassmorphism background-blur causes 60fps drop on scroll | Glass is GPU-expensive. Use only on static hero sections, never on scroll containers. Test `backdrop-filter` performance with Chrome FPS meter |447448## Anti-Patterns449450| Pattern | Problem | Fix |451|---------|---------|-----|452| Flat white (#fff) background with Inter as display font | Looks like an unstyled wireframe, not a shipped product | Always use tinted dark or cream base. Pair with a proper display font |453| Purple-to-blue gradient on white background | The #1 AI output cliché across all LLMs. Instant "AI generated" signal | Pick one of the 4 color directions. Never default to purple gradient |454| Icon + heading + description cards in identical 3-column grid | Zero visual hierarchy. Users scan past without reading any card | Vary card sizes. Use asymmetric grids (2fr 1fr). Break grid rhythm with full-width sections |455| Emoji used as UI icons | Renders inconsistently across platforms. Looks unpolished | Use Lucide or Phosphor icon libraries exclusively. SVG only |456| Animations on every element without stated purpose | Motion fatigue. Users disable animations or leave the page | Every animation needs a purpose: spatial consistency, state indication, feedback. Product register: be restrained |457| Center-aligned hero text with centered CTA button | Generic SaaS template. Zero personality or visual tension | Left-align hero text. Place visual on right. Create deliberate asymmetry |458| `border-left` > 1px with accent color on sidebar/dashboard | Immediate "AI made this" tell in dashboard interfaces | Use subtle spacing, background tint, or hairline separators instead |459| Gradient text via `background-clip: text` | Decorative, never semantic. Fails WCAG contrast at gradient mid-point | Use solid colors with weight and scale contrast for hierarchy |460| Glassmorphism as default card surface | Trendy 2022. Low contrast, poor readability. Adds visual noise | Use only when atmospehre IS the product (Brand register). Never in Product dashboards |461| Nesting cards inside cards | Creates visual clutter. User cannot establish information hierarchy | One level of card per section. Use dividers or spacing for sub-groups |462463## Checklist464465- [ ] Skill loads without errors in the AI agent466- [ ] YAML frontmatter is valid (description, compatibility, audience)467- [ ] Workflow section provides clear step-by-step instructions468- [ ] Error handling section covers common failure modes469- [ ] All referenced files (references/, scripts/, assets/) exist470- [ ] Skill triggers correctly for intended use cases471- [ ] No broken links or missing resources
Run npx skillmds@latest add eliasoulkadi/aesthetic-web in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
--- It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
eliasoulkadi (@eliasoulkadi) published this skill. Their other Agent Skills are listed on their SkillMD profile.