Migration
See how legacy systems create temporary fixes and how to reduce them safely.
Apply
Urgent fixes are sometimes unavoidable — legacy coupling, browser quirks, or a release that cannot wait for a full refactor. The hacks layer keeps those changes in one place: layered last, clearly named, and separate from components and theme so they stay easy to find, review, and remove before they become permanent architecture.
Is this temporary and urgent?
YesHacks
NoNext question
Is this a real structural fix?
YesComponent or layout
NoNext question
Is this only visual presentation?
YesTheme, not hacks
No
A hack should be obvious, justified, and easier to remove than it was to add.
For the shorter hack vs real fix flow, seedecision trees.
Production sometimes needs a fast correction before the real refactor is possible. The hacks layer gives those urgent fixes a visible quarantine zone instead of hiding them inside normal component files.
This protects the rest of the system from temporary decisions pretending to be design choices.
@layer hacks {
.legacy-slider {
inset-block-start: -1px;
}
}A good hack is isolated in the hacks layer, clearly named, and documented enough that nobody has to perform archaeology to remove it later.
.product-card {
margin-block-end: 12px !important;
}
.site-header {
z-index: 999999;
}These are not sustainable fixes. Hidden important declarations and panic z-index values create ongoing debugging overhead, not maintainable systems.