Confine difference to a few expression layers
Aliases: structure versus expression · confine difference · expression layer
What it is
An interface splits into two kinds of decision. Structure: grid, component anatomy, interaction model, content hierarchy. Expression: type, color, motion curves, illustration voice. Expression-layer confinement says the brand’s “unlike” should live almost entirely in the second kind, while the first stays shared. It does not care whether the unlike is spent on a splash screen or a list row; it cares which kind of decision carries it. Writing “unlike” into structure means building a second skeleton for every flow.
Type, palette, and motion can swap without changing how a task is completed. Changing the skeleton makes every task walk again.
Why it happens
Structure is what every flow sits on. Change the navigation hierarchy once, move confirm from a dialog to inline once, and call sites explode with product breadth. Expression replacement is assignment: same anatomy, a new set of semantic aliases, a new easing, a new family — the flowchart is not redrawn. If difference leaks into structure — each brand with its own navigation model, its own stepwise form philosophy, its own list gestures — the object of shared repair disappears and the “system” is a repository name. Shutting difference into expression puts “unlike” on a swappable channel and “usable” on a channel many surfaces share. Pick the wrong channel and the next revision is demolition, not a reskin.
Where it stops holding
Products under strong platform convention (system settings, file managers) already have structure occupied by the OS, and little expression left; forcing difference there collides with convention. In games and creation tools the core canvas is expression; structure and expression will not split, and the canvas cannot be demoted to “swap the palette”. Accessibility contrast pulls color back from pure expression into a structural constraint: not every palette swap is legal. Expression itself needs a ceiling: if every component is allowed a private motion curve, expression becomes another structure. Confinement means a few shared expression variables, not “anything goes outside structure”.
Applying it
- Keep a two-column list: structural decisions (anatomy, interaction, hierarchy) and expression decisions (family, palette, motion, illustration). Brand asks may enter the right column only; anything entering the left must argue why the existing skeleton cannot carry it.
- Let semantic aliases carry brand substitution for color and type size. Do not fork component anatomy or state machines per brand. A brand that rewrites the navigation model in a product repo is structural leakage, not “personality”.
- Check: ship a theme pack that changes expression only, and drop it on the main paths. Task completion should stay the same; recognizable brand change should come from type, color, motion, and illustration. If the component tree or the interaction steps must change before it “looks like that brand”, difference is already out of the expression layer. Reverse the test on a screen praised as “very on brand”: strip color, type, and motion. If the skeleton no longer matches other products, the leak was structural.
Related
- Same group: R1.07.1 Systems chase reuse; brands chase difference · R1.07.3 Customizing everything forfeits the system's return · R1.07.4 Brand recognition is cheaper on a few high-frequency touchpoints · R1.07.5 Marketing pages and product UI can run different constraint intensities · R1.07.6 Rebrand cost depends on whether difference stayed inside the system
- Adjacent: R1.01 Design tokens · R1.15 Multi-brand and multi-theme
- Search terms:
expression-layer confinement·structure versus expression·semantic alias
Cards in the same group
- R1.07.1Systems chase reuse; brands chase difference
- R1.07.3Customizing everything forfeits the system's return
- R1.07.4Brand recognition is cheaper on a few high-frequency touchpoints
- R1.07.5Marketing pages and product UI can run different constraint intensities
- R1.07.6Rebrand cost depends on whether difference stayed inside the system