Skip to content

DOL Anti-Pattern Registry

auto-generated - do NOT hand-edit; run generator to refresh

Total: 29 scopes · 180 anti-pattern rows across 6 source files.

Single-file lookup index for every <dol_anti_pattern> row across DOL guidelines. AI agents load THIS file instead of grep-scrolling 6+ markdown files. Citation format: <scope>#<ID> - e.g., landing-5.4-cta#05, slop-08, figma-naming-6-binding#01.

  1. Before shipping UI: scan your output against applicable scope(s) listed in CODE-UI §5.2
  2. When refusing: cite specific row <scope>#<ID>, then point to source file for REWRITE guidance
  3. When extending: new anti-pattern goes in the relevant product file; this registry regenerates from source

Source files + regeneration:

Terminal window
python3 "DOL-DS-token/design-guideline/ui-style-guide/extract-anti-patterns.py"

Source: ds-guideline/DIRECTION.md

ID❌ PATTERN
direction-10-layout#01Content rộng hơn 1280px không có max-width
direction-10-layout#02Padding page <16px mobile
direction-10-layout#03Section liền nhau không có khoảng cách rõ
direction-10-layout#04Grid quá đều, không focal point
ID❌ PATTERN
direction-10-typography#01Hơn 3 cấp font-size trong 1 card
direction-10-typography#02Body text <13px
direction-10-typography#03Heading + body cùng weight
direction-10-typography#04Quá nhiều màu text trong 1 view
ID❌ PATTERN
direction-10-color-brand#01bg-red-* cho brand
direction-10-color-brand#02bg-brand-* cho error/danger
direction-10-color-brand#03Hơn 2 semantic accents đồng thời
direction-10-color-brand#04bg-blue-* cho “mọi thứ nổi bật”
direction-10-color-brand#05Shade -500 làm canonical
direction-10-color-brand#06text-white trên vivid bg (shade 500-600)
direction-10-color-brand#07gray-* / zinc-* / neutral-*
direction-10-color-brand#08Background gradient rực rỡ toàn page
direction-10-color-brand#09Card trắng trên trắng không border/shadow
ID❌ PATTERN
direction-10-spacing-depth#01Shadow quá đậm hoặc nhiều levels đồng thời
direction-10-spacing-depth#02Padding nội bộ không đều 4 phía
direction-10-spacing-depth#03Element quá sát (<8px) khi không liên quan

direction-10-component-interaction (4 rows)

Section titled “direction-10-component-interaction (4 rows)”
ID❌ PATTERN
direction-10-component-interaction#01Button không có hover/focus
direction-10-component-interaction#02Click target <32px
direction-10-component-interaction#03Transition đột ngột (instant)
direction-10-component-interaction#04Loading state trắng trơn
ID❌ PATTERN
direction-10-responsive#01Text/layout y hệt desktop trên mobile
direction-10-responsive#02Ẩn nav trên mobile mà không có thay thế
direction-10-responsive#03Horizontal scroll trên content chính
ID❌ PATTERN
direction-10-ai-slop-universal#slop-01border-left hoặc border-right: ≥2px solid <color> trên card/list/alert
direction-10-ai-slop-universal#slop-02bg-gradient-* + text-transparent + bg-clip-text trên heading/metric
direction-10-ai-slop-universal#slop-03Card (bg-white + border + shadow) chứa Card khác cùng treatment
direction-10-ai-slop-universal#slop-04Cùng 1 gap/padding value (vd gap-4 everywhere) trong whole view
direction-10-ai-slop-universal#slop-05Multiple consecutive text-center trong siblings (section sau section)
direction-10-ai-slop-universal#slop-06Big icon box (rounded + tinted bg) trên mỗi heading trong feature list
direction-10-ai-slop-universal#slop-07shadow-[...rgba(brand-color)...] box-shadow với colored glow
direction-10-ai-slop-universal#slop-08cubic-bezier với negative values (overshoot) hoặc ease-bounce/elastic
direction-10-ai-slop-universal#slop-09CSS transition / transition-property of layout props (width/height/padding/margin) - NOT Tailwind transition-all when only transform/opacity/color/shadow actually change
direction-10-ai-slop-universal#slop-10Body text với uppercase + tracking-wider HOẶC text-justify

Source: ui-style-guide/CORE.md

ID❌ PATTERN
core-11-layout#01Content >1280px không max-width
core-11-layout#02Page padding <16px mobile
core-11-layout#03Sections không gap
core-11-layout#04Card trong card, box trong box
core-11-layout#05Grid quá đều, không focal point
core-11-layout#06Content chia lô xám/trắng luân phiên
ID❌ PATTERN
core-11-color#01Brand red cho error/danger
core-11-color#02>2 accent colors cùng lúc
core-11-color#03White card trên white bg không border
core-11-color#04Blue cho mọi thứ prominent
core-11-color#05Gradient full page
ID❌ PATTERN
core-11-typography#01>3 font sizes trong 1 card
core-11-typography#02Body <13px
core-11-typography#03Heading cùng weight với body
core-11-typography#04>4 text colors per view
core-11-typography#05Mixed-language drift trong copy
ID❌ PATTERN
core-11-spacing-depth#01Shadow quá đậm (shadow-xl/shadow-2xl cho card default)
core-11-spacing-depth#02Padding 4 phía khác nhau bất đối xứng
core-11-spacing-depth#03<8px giữa unrelated elements
core-11-spacing-depth#04Divider thay spacing
ID❌ PATTERN
core-11-interaction#01Button không hover/focus state
core-11-interaction#02Click target <32px
core-11-interaction#03Loading state blank
core-11-interaction#04Card hover thêm border + shadow + bg cùng lúc
core-11-interaction#05Icon con bung shadow khi card cha hover
ID❌ PATTERN
core-11-tailwind#01Dynamic class: `bg-${color}-600`
core-11-tailwind#02bg-(--token) hoặc var(--token) trong class
core-11-tailwind#03gray-*, zinc-*, neutral-*
core-11-tailwind#04Hardcode hex trong class names

Source: ui-style-guide/landing.md

ID❌ PATTERN
landing-1.7-hero#01Eyebrow dùng bg-blue-50 text-blue-600 hoặc text-indigo-600
landing-1.7-hero#02Headline highlight dùng blue/indigo/purple gradient
landing-1.7-hero#03Eyebrow text text-xs
landing-1.7-hero#04Description text-xl hoặc text-2xl
landing-1.7-hero#05Button font-black
landing-1.7-hero#06Button py-5 text-lg (quá nặng)
landing-1.7-hero#07Primary/secondary button khác font-weight
ID❌ PATTERN
landing-2.5-feature-grid#01Identical icon boxes across ALL cards (same color/size/shape)
landing-2.5-feature-grid#024+ columns on desktop
landing-2.5-feature-grid#03Heavy shadows (shadow-xl) on every card
landing-2.5-feature-grid#04Centered text in every feature card
landing-2.5-feature-grid#05Gradient card backgrounds
landing-2.5-feature-grid#06”Learn more” link on every card (repeated)
ID❌ PATTERN
landing-3.4-showcase#01Screenshot với rotate-3 / rotate-6
landing-3.4-showcase#02Gradient overlay on product screenshot
landing-3.4-showcase#03Multiple screenshots stacked tilted / overlapping
landing-3.4-showcase#04Colored glow behind screenshot
landing-3.4-showcase#05Screenshot full-bleed (edge-to-edge)
ID❌ PATTERN
landing-4.4-testimonials#01Giant decorative quote marks " as text-6xl
landing-4.4-testimonials#02Avatar w-20 h-20 (huge)
landing-4.4-testimonials#03Carousel auto-advance fast
landing-4.4-testimonials#04Testimonials without role / company
landing-4.4-testimonials#05Star rating in different colors per testimonial
landing-4.4-testimonials#06”★★★★★” emoji characters instead of icon
ID❌ PATTERN
landing-5.4-cta#01Multiple CTAs per section (3+ buttons)
landing-5.4-cta#02Full-width brand color section background
landing-5.4-cta#03”Click here” / “Submit” generic copy
landing-5.4-cta#04CTA block immediately after hero
landing-5.4-cta#05Multiple !!! in CTA copy
landing-5.4-cta#06CTA form requires 5+ fields
landing-5.4-cta#07CTA với countdown timer pressure
ID❌ PATTERN
landing-6-composition#01Outer section card dùng rounded-2xl (cùng inner)
landing-6-composition#02Section dùng p-4/p-6 thay p-10/p-12
landing-6-composition#03Heading center-aligned cho mọi section header
landing-6-composition#04Heading 1 dòng dài chiếm full width
landing-6-composition#05Section ↔ section gap dùng gap-12/gap-16
landing-6-composition#06Inner items dùng cùng padding với outer (p-10)
landing-6-composition#07Outer card không có border + shadow yếu (alpha ≤0.04)
landing-6-composition#08Eyebrow dùng plain text thay pill
ID❌ PATTERN
landing-6.6-constellation-block#01Outer dùng border-slate-100/200 (with border-color)
landing-6.6-constellation-block#02Quên overflow-hidden trên middle
landing-6.6-constellation-block#03Middle bg-slate-50 (quá nhạt)
landing-6.6-constellation-block#04Cùng radius cho 3 tiers (e.g., outer + middle = rounded-[32px])
landing-6.6-constellation-block#05Dùng divide-x divide-y thay gap-[1px] cho 2-col grid
landing-6.6-constellation-block#06Bottom row OUTSIDE middle (sibling)
landing-6.6-constellation-block#07Per-cell border + shadow trên white
landing-6.6-constellation-block#08Cell có >3 elements (icon-tile + title + target + body + audience + CTA)
landing-6.6-constellation-block#09Bottom row content sai platform purpose (sales tone trên self-study)
landing-6.6-constellation-block#10Per-cell translate-y / scale lớn hover
ID❌ PATTERN
landing-7-decoration#01Áp tất cả decorations vào 1 section (peek-photos + type-pattern bg + ribbon + emoji + handwritten)
landing-7-decoration#02Type-pattern bg với generic dot/grid (không brand vocabulary)
landing-7-decoration#03Emoji sticker random không meaning (🌟 ⭐ ✨ scattered)
landing-7-decoration#04Handwritten font cho body / labels / buttons
landing-7-decoration#05Photo peek-edges dùng stock photo / illustration
landing-7-decoration#06Ribbon badge cho status indicator (active/disabled/loading)
landing-7-decoration#07Certificate stack cho generic feature (“tính năng mới”)
landing-7-decoration#08Dotted arrow connector trong tight grid
landing-7-decoration#09Section accent color rotation >3 distinct colors / page
landing-7-decoration#102-color heading nhấn cả câu (text-brand-600 toàn heading)
landing-7-decoration#11Big-number block dùng text-2xl (số nhỏ) + text-base label (label to)

Source: ui-style-guide/practice.md

ID❌ PATTERN
practice-2.6-answer-cards#01Shake / bounce animation on incorrect
practice-2.6-answer-cards#02Brand red for “selected” state
practice-2.6-answer-cards#03Full border + bg + shadow change on hover
practice-2.6-answer-cards#04Icon badge above answer text
practice-2.6-answer-cards#05Gradient bg on correct/incorrect
practice-2.6-answer-cards#06Huge letter prefix “A” / “B” / “C” as badge
practice-2.6-answer-cards#07”Try again” text on incorrect
practice-2.6-answer-cards#08Confetti / celebration animation on correct
ID❌ PATTERN
practice-4.5-timer-progress#01Red flash / blink when time <1 min
practice-4.5-timer-progress#02Timer font không tabular-nums
practice-4.5-timer-progress#03Progress bar bounce/elastic easing
practice-4.5-timer-progress#04Circular progress với huge % text center
practice-4.5-timer-progress#05Step indicator có label “Câu 3 of 10” + dots đồng thời
practice-4.5-timer-progress#06Auto-submit không warning
ID❌ PATTERN
practice-6.5-audio-tts#01Loud feedback sounds (100% volume)
practice-6.5-audio-tts#02Harsh buzzer for incorrect
practice-6.5-audio-tts#03Auto-play narration without user initiate
practice-6.5-audio-tts#04Narration indicator using brand color
practice-6.5-audio-tts#05No visual counterpart cho audio feedback
practice-6.5-audio-tts#06Progress bar bounce/elastic during playback
practice-6.5-audio-tts#07Vague labels (“Play”, “Pause” in English)

Source: ui-style-guide/data-entry.md

ID❌ PATTERN
data-entry-3.7-validation#01Validate on keystroke (every char)
data-entry-3.7-validation#02Required marker * without a11y label
data-entry-3.7-validation#03Error as modal / toast
data-entry-3.7-validation#04Generic “Invalid input” / “Error” copy
data-entry-3.7-validation#05English error messages
data-entry-3.7-validation#06Red border alone, no text
data-entry-3.7-validation#07Block typing past max length
ID❌ PATTERN
data-entry-4.6-multistep-flow#01”Next” button hoạt động nhưng step invalid (validate chỉ ở submit)
data-entry-4.6-multistep-flow#02Step indicator ẩn steps ahead
data-entry-4.6-multistep-flow#03Autosave toast mỗi 1500ms
data-entry-4.6-multistep-flow#04Progress bar % không map với steps
data-entry-4.6-multistep-flow#05Wizard animation slide-between-steps (transform transition)
data-entry-4.6-multistep-flow#06Block Back button after completing step
ID❌ PATTERN
data-entry-5.6-rich-content#01Rich editor toolbar floats trên content (không shared border)
data-entry-5.6-rich-content#02Dropzone không show format + size limit trước upload
data-entry-5.6-rich-content#03Remove button dưới thumbnail (not overlay)
data-entry-5.6-rich-content#04Progress bar bên dưới row (tạo vertical shift)
data-entry-5.6-rich-content#05Markdown preview mở modal / new tab
data-entry-5.6-rich-content#06Editor height fixed tall (~600px) luôn
data-entry-5.6-rich-content#07Toolbar icon-tile-above label pattern
ID❌ PATTERN
data-entry-6.8-data-tables#01Bordered cells (full grid)
data-entry-6.8-data-tables#02Numeric cells left-aligned
data-entry-6.8-data-tables#03Select-all checkbox = “all rows everywhere”
data-entry-6.8-data-tables#04Inline edit commits silently on Enter (no visual feedback)
data-entry-6.8-data-tables#05Empty state = blank tbody + “No data” text
data-entry-6.8-data-tables#06Loading = centered spinner replacing table
data-entry-6.8-data-tables#07Page size > 50 on mobile
data-entry-6.8-data-tables#08Row click = navigate AND checkbox = select

Source: figma-ai/naming-convention.md

ID❌ PATTERN
figma-naming-6-binding#01Hardcoded hex in fills when matching token exists
figma-naming-6-binding#02text-color/* applied to icon vectors (prefix mismatch)
figma-naming-6-binding#03Feature-named tokens (cause-bg-color, effect-text-color)
figma-naming-6-binding#04Inconsistent focus ring (per-component color)
figma-naming-6-binding#05Inventing new intensity modifier (e.g., “semi-soft”, “extra-dim”)