About
One skeleton, many skins
Calaca UI is a component library of plain CSS classes that run in any stack: one skeleton of structure and behavior, dressed in a skin per product.
01 Why Calaca UI exists
The same components, rebuilt once too often
Every product needed the same pieces, built again: a dialog, a dropdown, a toast. Three products meant three dialogs: one that closed on Escape, one that kept focus inside, one that did neither. Each copy drifted a little further from the last one, and accessibility got checked again from scratch every time, or not at all.
The mission is one skeleton under every product: build the accessible core once, then let every brand put on its own skin. A new brand means a new skin, never a new implementation, so a new look cannot break what the core already guarantees.
What makes it different in its field is how little it asks. The classes are plain CSS, so the whole library ships as a stylesheet and never needs a framework: the same markup runs in plain HTML, Astro, Next.js or React. A dialog is a real <dialog> and a menu a real popover; where a script is needed, it stays under 1.5 KB gzipped. You change the skin, not the code.
02 Why the name is calaca
A word I learned from my wife’s family
Calaca is my favorite word in Spanish. I learned it from my Mexican family: my wife is Mexican, and thanks to her and her family my interest in Mexican culture has only grown. It is a small word with a warm sound, and it stuck with me from the first time I heard it.
A calaca is a skeleton, but not the spooky kind. In Mexico the calaca is the friendly one: the skeleton you dress up, paint with flowers and celebrate during the Day of the Dead. Catrina, the most famous calaca, is elegant, a little funny and completely unafraid. The word already carries the feeling I wanted this library to have: handmade, festive and warm, never cold or corporate.
I liked the word before I knew what I would build. When the component library took shape, the fit was immediate: one skeleton that stays the same, and a skin for every product. The name did not describe the project afterwards. It described the idea from the start.
03 The name is the system
One skeleton, many skins is not a tagline. It is a translation.
"One skeleton, many skins" is what calaca means as software. The core holds what every interface owes its users: structure, keyboard behavior, focus, touch targets. A skin is the clothing a product puts on it: colors, shapes, type, motion. Your product keeps its own look; the skeleton underneath never changes.
Cempasúchil
The marigold of the Day of the Dead altars: the one loud accent, like the flower itself.
Hueso and tinta
Bone and ink: the paper the calacas are drawn on, and the line that draws them.
Rosa and jade
Small accents, the papel picado of the palette: present, never loud.
Even the mark follows the story: a skull with a flower, a calaca rather than a warning sign. The palette is a small cast of names from the same world: papel and hueso carry the ground, tinta draws everything, cempasúchil is the marigold that guides the spirits home, and rosa and jade visit sparingly.
04 The person behind it
A designer who writes the code, in a country that touches the sea

I am Martijn Bokma, a designer and developer from the north of the Netherlands. I build interfaces and the systems behind them for businesses, teach what I know to students, and Calaca UI is the component layer I wished existed while doing all of it.
- Based inDrachten, Friesland, the Netherlands
- WorkNHL Stenden: sites, apps and workshops for students
- HobbySide projects that match my interests and challenge me
- FamilyMy wife is Mexican; we have a son
I live in Drachten, in Friesland, with my wife and our son, where the flat land runs straight into the Wadden Sea. Most of my working life sits between two disciplines that are usually pulled apart: I design the interface and I build it, so nothing gets lost in translation between a mockup and a stylesheet.
For businesses I do web design, front-end development and branding, from the first concept to a site that has to make an impression and keep working.
I work for NHL Stenden, a university of applied sciences in Leeuwarden, where I build websites and apps for the academy of Media, Commerce & Entrepreneurship and the Creative Business programme.
I help students with everything I know about design, for print and for the web, and I gladly share my knowledge and experience to help them grow. Together with my colleagues I also organize workshops focused on practical skills and on stimulating creativity.
How I work follows one rule: understandable and logical above all. I am always looking for the solution that works best for me, the way I actually see and use things: easy to grasp, without unnecessary complexity. Over-engineered solutions put me off, because they are often impractical and hard to handle. I keep things simple, clear and easy to maintain, so I can work fast and efficiently, without obstacles in the way.
I have always been endlessly curious, constantly looking for answers and new insights. Why do they do it this way and not another? What are the underlying reasons and considerations behind their approach? And how can I improve my workflow so I never have to do the same work twice, so I work faster and more effectively?
You can find more about the work at martijnbokma.nl.
Say hello
Questions about the library, a skin for your product, or just the story behind the name: my inbox is open.