Black Top Hand
from$389.00
Audited from catalenahatters.com
The visual language of a Texas custom hat shop, captured from the live store and rebuilt as tokens and components so research pages and redesign work start from the same ground.
Catalena Hatters has made felt hats by hand in Bryan, Texas since 1983. The site speaks in the shop's own voice: uppercase serif titles like a hat-box label, condensed sans for wayfinding, warm cream grounds and one gold that reads as a hat band. Photography of the workshop and the hats does the persuading.
assets/logo.png
Primary mark at 96px in the header, 48px when sticky, 104px in the footer. The hat glyph sits on the section-title rule.
Warm neutrals from cream to ink, one gold accent in three strengths, and a small set of signals. Raw values are named after felt and paper; components only ever reference the semantic roles.
The eleven felt colors a customer chooses from on the product page. Swatches are approximations of the shop's samples and exist so option pickers, filters and guides can show color instead of a dropdown label.
| Pair | Ratio | WCAG AA text | Note |
|---|---|---|---|
| Walnut on white | 10.1 : 1 | Pass | Body copy |
| Ink on cream | 12.0 : 1 | Pass | Headings |
| Cream on bark | 10.5 : 1 | Pass | Top bar, overlays |
| Gold on white | 2.1 : 1 | Fail | Prices and links on the live site |
| White on gold | 2.1 : 1 | Fail | Button labels on the live site |
| Gold text (#8f6a1f) on white | 4.9 : 1 | Pass | Recommended for small gold text |
| Ink on gold | 6.2 : 1 | Pass | Recommended button label color |
| Stone (#6f6a62) on white | 5.4 : 1 | Pass | Muted text; the live site's #96948f is 3.0 |
| Red on white | 5.0 : 1 | Pass | Sale, errors |
Add data-contrast="aa" to the html element to switch link, price and button-label roles to the passing values without touching any component. The toggle in the Accessibility section does this live.
Three Google Fonts, each with one job. Old Standard TT is always uppercase when it names something and italic when it quotes someone. Lora carries paragraphs and prices. Oswald handles anything you scan or click, uppercase with a touch of tracking.
By hand.
One at a time.
We take pride in making quality custom hats that look right, feel right, and are shaped right for every customer.
Custom felt hats · Find your fit · Add to cart
World-class quality
Silverbelly Cutter
“Without a doubt, the best in the business.”
Silverbelly Cutter crease with a medium set brim. Shown with a matching two-cord ribbon. Use the options below to customize this hat to your liking.
Crown height 5 3/4" (standard). Brim length 4" (standard). Hat band: 2-cord ribbon.
Custom felt hats Rodeo King felt Straw hats Kids hats Find your fit
Hat color* Brim length* 833-430-HATS
A 4px scale. The live theme mixes 10, 15, 20, 25, 30 and 40px; these snap to the nearest step. Sections breathe at 40px on phones and 64px on desktop, with a 96px option for the biggest bands.
| Token | Value | Used by |
|---|---|---|
--size-control | 42px | Inputs, selects, buttons, newsletter form |
--size-control-sm | 34px | Header search, pagination, small buttons |
--size-control-lg | 52px | Add to cart on product pages |
--size-topbar | 40px | Utility bar and the gold cart block |
--size-header / -sticky | 106px / 66px | Logo row at rest and when scrolled |
--size-tap-min | 44px | Minimum touch target on mobile |
A 1200px container with 20px gutters, matching the theme's 16-column skeleton at desktop, expressed here as a 12-column CSS grid. Photography sections break out to the viewport edge; content sections stay in the container.
.grid .col-*Columns are full-width under 768px. .cols-2, .cols-3, .cols-4 give equal columns that collapse sensibly; .product-grid is 2 → 3 → 4 across; .split is the two-up photo-and-copy layout; .with-sidebar is the collection page.
Oswald, uppercase, 42px tall, square corners. Gold fill is the one primary action on a page. Outline buttons sit on cream and photography. The hover shifts the gold darker rather than adding a shadow.
.c-button.c-button--outline-light.c-button--ruleThe cart's quiet secondary action: text between two hairlines, full width.
<button class="c-button">Add to cart</button> <a class="c-button c-button--outline" href="/collections/all">View all</a> <a class="c-button c-button--outline-light" href="#">Quick shop</a> <button class="c-button c-button--block c-button--lg">Add to cart</button>
Every custom hat is an eight-field form, so inputs matter. Labels are Oswald 12px uppercase; fields are 42px white boxes with a pebble border that darkens on focus. Required marks are red. Guide links sit under the field in bold Lora.
.c-field .c-select .c-input .c-textarea .c-checkbox.c-inline-form .c-search.c-noticeCustom felt hats take 6 to 8 weeks. We'll email you when yours is on the block.
Added to cart. Silverbelly Cutter, 20X, size 7 1/4.
We couldn't add this hat. Choose a head oval shape and try again.
Two rows. A bark-colored utility bar with social, phone, secondary links, account and a gold cart block. Below it the cream header: logo left, centered Oswald menu, search right. On scroll the header sticks and the logo shrinks to 48px; under 960px the menu collapses behind a toggle.
.c-topbar .c-header .c-navHover the first menu item for the dropdown. Add .c-header--sticky for the scrolled state (shadow, 66px row, small logo). The toggle opens .c-mobile-menu below 960px.
Breadcrumbs in Oswald with gold slashes, page titles underlined by a full-width hairline, and the centered section title with the hat glyph resting on its rule.
.c-breadcrumb .c-page-title.c-section-title.c-section-title--hatThe hat version is for cream sections; the plain version (no glyph) is used on white brand-logo sections, matching the live site.
.c-tabs .c-paginationThe product card is the most repeated object on the site: square photo, uppercase serif name, gold price with an italic "from" when the quality grade changes the price. Hover darkens the photo and offers a quick shop.
.product-grid .c-product-card
from$389.00
from$389.00
$339.00$389.00
Sold out
.c-price .c-badge .c-swatchfrom$389.00
$339.00$389.00
New Sale Sold out Made to orderSwatches are new; the live site uses a dropdown for hat color. They're here for the redesign.
.c-tileBrand logos are third-party artwork and are stood in for by their names here. On the live site the tile is the maker's logo on white with the name beneath.
Gallery left, summary right. The summary stacks vendor, a 42px title over a hairline, the price row with the guide link, description with a bold spec list, then the option form and a full-width add to cart.
.c-product-summary .c-spec-list
$389.00
Quality, color & size guideGus crease with a medium set brim. Shown with a braided horsehair band.
The picture shown is sporting these specs:
Use the options below to customize this hat to your liking.
Collection pages put a filter sidebar beside the product grid. Group titles are Oswald 16px; links are Lora with a 9px gold rail marking the active filter.
.with-sidebar .c-sidebar .c-collection-intro.c-calloutUse the felt hat guide for quality grades, colors, sizes and head shapes, or call the shop at 833-430-HATS.
Hat restoration quotes are given in person or from photos. Turnaround is 4 to 6 weeks.
The homepage is a stack of photo-led bands. Each one is a component that takes an image and a few lines of copy.
.c-promo-tiles .c-promo-tile.c-banner.c-feature
Catalena Hatters has been recognized by industry professionals and hat connoisseurs as the best custom handmade felt hat in the world.
View all
Do you have a hat too sentimental to discard, but too stained or damaged to wear? We are one of only a handful of hat restoration professionals in the world.
Hat restoration.c-testimonial
“Only place my husband will take or buy his hats. Two and a half hour drive each time, one way. But so worth it.”
.c-newsletterAdded for the redesign homepage (pages/redesign/home.html): the page is the making of one hat. A full-viewport hero, five chapters beside a sticky image stage on the dark ink ground, then a ruled "where do I start?" ledger. Chapter and path titles are sentences, so they stay in sentence case. Photography here is Higgsfield-generated and stands in for the shop's own.
.c-story-hero with lead-time chip .c-lead-time
Custom felt hats built to your head in our shop on Main Street in Bryan, Texas. Same family, same machines, since 1983.
On load the photo settles from a 1.06 scale and the lines rise in sequence (--duration-hero, --stagger). The page sets [data-settled] afterwards so scroll-driven transforms can take over. .c-lead-time--light for cream grounds. The lead-time value is a placeholder until the shop confirms it.
.c-chapters .c-chapter and tier list .c-tier-listStep one of five. The body
No crown, no brim, no shape yet. The fur decides how the hat wears. We build four grades and we price every one of them plainly.
One .c-chapters__frame per chapter; JS sets [data-active] on the frame and aria-current="step" on the index link for the chapter in view. Under 960px the stage is 52svh tall and the text scrolls beneath it. Swatches on this ground use .c-swatch-list--inverse.
.c-path-list .c-pathPick one of 21 creases, choose your felt and color, and build it online in about five minutes.
Shop custom felt hatsFive questions about where you'll wear it and how often. We suggest a style, a grade and a color.
Find your fitRestoration is $255 with return shipping and takes four to six months.
Start a restorationA ruled ledger, not cards. The whole row is the link. The action column is fixed at --size-path-link so descriptions line up.
.c-style-strip of .c-tileSnap-scrolls horizontally; tiles are --size-style-tile wide.
.c-fact-list .c-fact and quote .c-quoteOnly place my husband will take or buy his hats. Two and a half hour drive each time, one way.
Google review, one of 233 at 4.5 stars
The fact list doubles as the hours table on the visit block. Only real quotes go in .c-quote.
How the live pages are assembled, top to bottom, with the component that reproduces each band. Use these as the starting stack for research mockups and as the baseline to redesign against.
The audit found the brand gold failing text contrast wherever it carries small type. The system keeps the brand-faithful mapping by default so research pages match the live store, and offers a one-attribute switch for redesign pages.
html[data-contrast="aa"]from$389.00
Everything on this page re-colors when you toggle, because components read --color-link, --color-price and --color-text-on-accent rather than the raw gold.
--color-accent-text (#8f6a1f) or the AA mode.--cat-ash for reference.:focus-visible for every interactive element.prefers-reduced-motion and are disabled on touch devices.Drop the entry stylesheet and the Google Fonts link into any page, then compose from the component classes. Nothing in the system depends on Shopify; the same CSS works in plain HTML, Liquid sections or a Next.js page.
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Old+Standard+TT:ital,wght@0,400;0,700;1,400&family=Oswald:wght@300;400;500&family=Lora:ital,wght@0,400;0,700;1,400&display=swap"> <link rel="stylesheet" href="design-system/css/catalena.css"> <body class="page--cream"> <!-- cream ground like the homepage --> <html data-contrast="aa"> <!-- optional: AA-safe gold text -->
c- prefix, inner parts use __, variants use --.