Developer Reference
FrankenUI Design System
Server-rendered UI primitives — every component, every variant, every state.
Checkout Components
New components for e-commerce: stepper, quantity input, segment control, payment cards, price display, summary lines, promo input, result heroes.
Card Elevated/Glass variant
Elevated Card
Glass-morphism card variant with frosted glass background and deeper shadows for dark mode.
Quantity Stepper
Input Large + Button Large
Segment Control (pill toggle)
Stepper / Numbered Steps
Summary Lines (label-value pairs)
Promo Input (input + button group)
Payment Card (radio card)
Price Display
Badge Status variants
Result Hero (success / error)
Payment Successful
Your order #12345 has been confirmed. You will receive a confirmation email shortly.
View OrderPayment Failed
Your payment could not be processed. Please try again or use a different payment method.
Try AgainTypography
Type scale, headings (h1–h6), body text, lead, muted, code, blockquote, and all typographic utility classes.
Headings h1 – h6
Heading Level 1
Heading Level 2
Heading Level 3
Heading Level 4
Heading Level 5
Heading Level 6
Display font — uk-heading-small / medium / large
Display Small
Display Medium
Display Large
Body paragraph
The quick brown fox jumps over the lazy dog. This is a standard body paragraph demonstrating the default font size, line-height, and colour. Readable at every viewport.
Lead text (uk-text-lead)
A lead paragraph stands out from regular body copy and introduces a section.
Muted text (uk-text-muted)
Secondary information rendered in a muted colour to reduce visual noise.
Meta text (uk-text-meta)
Inline elements
Bold (strong) — Italic (em) — Small text — Highlighted (mark) — inline code() — Deleted text — Inserted text
Links
Code block (pre + code)
#[Route(path: 'POST /api/user/create')]
#[RateLimit(limit: 20, window: 60)]
final class CreateUserHandler extends AbstractHandler
{
public function handle(Request \$request): ResponseInterface
{
\$handler = new UserHandler(
repository: \$this->userRepo,
validator: new RequestValidator(),
);
\$response = \$handler->handle(\$request);
Logger::channel('api')->info('User created', [
'uuid' => \$response->uuid,
]);
return \$response;
}
}Blockquote
The details are not the details. They make the design.
Buttons
Primary, secondary, danger, ghost, and link variants. Size modifiers, icon buttons, loading states with spinner/checkmark/cross.
Variants — medium size
Variants — small size
Variants — large size
Disabled states
Buttons with icons
buttonWithStates — loading/success/error state support
These buttons contain hidden spinner/checkmark/cross icons. JavaScript transitions between states on user interaction.
Button groups
Connected buttons with shared border-radius. Split button with dropdown menu.
Form Inputs
Text, email, password, number, textarea inputs. Floating labels, validation states, disabled state, form layout helpers.
Bare inputs — type variants
formField() — label + input + optional help text
Validation states — danger (error) and success
Bare textarea() variants
textareaField() — label + textarea + optional help text
select() — native select element
filterSelect() — TomSelect SSR (no selection, pre-selected, disabled)
formSelect() — TomSelect SSR with form label
selectNew() — Customizable Select (base-select)
formSelectNew() — Customizable Select with form label
filterSelectNew() — Customizable Select inline filter
checkbox() — unchecked, checked, disabled
toggleSwitch() — off, on, disabled
radio() — group with unselected, selected, disabled
Cards
Default card, hover card, elevated card, media card. Card body, title, badge, footer combinations.
New Premium Variants
Claim Your Club
Take control of your listing and unlock all features.
What You Get
Full profile editing, analytics dashboard, member management, and priority support.
Green Valley CSC
Claim ownership and manage your club profile.
Premium Access
Full club management
Club Settings
Configuration
Recent Activity
Last 24 hours
Media Card
Image + content layout
Badges & Pills
Status badges (success, warning, danger, info, neutral). Size variants, dot indicator, removable pill chips.
All badge variants
Size variants
With icons
Dot indicator
Pills
Pill variants
Pill sizes
Alerts
Informational, success, warning, and danger alert banners. With and without icons, dismissible variant.
General information
Operation Successful
Attention Required
Action Failed
New Feature Available
Layout
Grid system (2, 3, 4-column), responsive container sizes, section padding variants, dividers.
2-column grid (uk-child-width-1-2)
3-column grid (uk-child-width-1-3)
4-column grid (uk-child-width-1-4)
Container size variants
Section element with title + padding
Default Section
uk-section-default — uses the page background (surface1).
Muted Section
uk-section-muted — subtle surface2 background for visual separation.
Secondary Section
uk-section-secondary — deeper surface3 background for stronger contrast.
Primary Section
uk-section-primary — brand-colored background with white text.
Data Display
Stat cards with icon + value + delta, progress bars, empty states with CTA, description lists (key-value pairs).
statCard() — icon + value + label + delta
progress() — value/max, variant colors
Default — 25%
Success — 60%
Danger — 90%
emptyState() — icon + title + description + CTA
No results found
Try adjusting your filters or search terms to find what you are looking for.
descriptionList() — horizontal layout (key-value pairs)
- Full name
- Jane Doe
- jane@example.com
- Role
- Administrator
- Member since
- March 2024
- Status
- Active
skeleton() — block, text, circle, card variants
block
text (3 lines)
circle
card
Complex
Accordion (single/multi-open), hero + pageHero, feature grid, pricing toggle, skeleton loading screens.
accordion() + accordionItem() — native details/summary
What is FrankenUI?
How does SSR work here?SSR
Which PHP version is required?PHP 8.5
pageHero() — eyebrow + split title + subtitle + stats
Developer Preview
Component Library
A curated set of accessible, server-rendered UI primitives for PHP 8.5 applications.
pricingToggle() — monthly/yearly radio pill toggle
Forum
Category row (icon, name, description, post count), thread row (avatar, title, meta, reply count, vote score).
forumCategoryRow() — icon, title, description, post count
forumThreadRow() — avatar, title, author, date, reply count, vote score
User
Avatar component: null/empty/non-numeric image falls back to FA icon placeholder. Size variants via class modifier.
userAvatar() — no image → FontAwesome fa-user placeholder
userAvatar() — empty string → same FA icon fallback
skeleton() — block, text, circle, card variants
Reviews
Main review with star rating, criteria breakdown, sub-reviews, and owner responses.
Absolutely fantastic atmosphere. The staff was incredibly welcoming and the quality exceeded all expectations. Will definitely be coming back — highly recommended to anyone looking for a premium experience.
Thank you so much for your kind words, Max! We work hard to create a welcoming environment and it means the world to hear this. We look forward to seeing you again soon!
Great experience overall. Very clean and professional. One small suggestion: a bit more variety in the offerings would push this to a perfect five stars.







