Findalo

Advanced CSS and stable classes

When tokens aren't enough — hiding one element, moving another, a detail that's very much yours — you can write CSS directly against the widget's classes. Only the ones on this list have guaranteed support: the rest of the markup is internal and can change without notice.

Where this CSS goes

In the panel's Custom CSS (Appearance → Advanced). The widget lives in a shadow DOM, so your store's CSS never reaches these classes — the panel's editor injects yours inside. The --fdl-* tokens are the exception: those you can declare from outside.

Classes with stable support

Structure

Selector What it is
.findalo-search-host Widget host on your page (outside the shadow). The place to declare the --fdl-* tokens from your own stylesheet.
.kos-search Widget root inside the shadow. Scope for the tokens in the panel's Custom CSS.
.topbar Search header: logo, cart and close.
.logo The store's logo link in the header.

Search box

Selector What it is
.search-box Search input box. Carries the .searching class while a search is in flight.
.search-box input The search input.

Filters

Selector What it is
.filter-bar Bar below the header: active filter chips, counter and sorting.
.active-chip Chip for an active filter.
.sort-select Sort selector.
.facets Filter sidebar (brand, category, features…).
.facet-section Block for one facet inside the sidebar.
.facet-label One filter option (checkbox + text).

Results

Selector What it is
.results Main results container.
.grid Results grid (uses the columns configured in the panel). In list view it also carries .grid--list.
.result-banner Promotional banner above the results.

Product card

Selector What it is
.card Product card.
.card .img The card's image box.
.card .name Product name.
.card .price-row Price row (current + strikethrough when on sale).
.card .badge Card badge (sale, out of stock, new…).
.card .add-to-cart The card's “Add to cart” button.

Start screen

Selector What it is
.empty-state Start screen (before typing): recent, popular, featured.
.section-title Title of each start-screen section.
.popular-card Card in the popular/featured carousel.
.recent-item Recent-searches item.
.pre-search-banner Start-screen banner.
.discovery-rail Discovery rail (links to rankings) on the start screen.

Overlays

Selector What it is
.qv-panel Quick view modal panel.
.quiz-panel Quiz / guided search panel.

Recipes

Hide “Add to cart” in one category

/* Products link to their page: filter by the category URL */
.card[href*="/tarjetas-regalo/"] .add-to-cart { display: none; }

Denser grid on large screens

@media (min-width: 1280px) {
  .grid { grid-template-columns: repeat(6, 1fr) !important; }
}

Sticky header on scroll

.kos-search .topbar { position: sticky; top: 0; z-index: 5; }

Limits: custom CSS accepts up to 100,000 characters if you paste it in the panel; if it comes through the AI Automation the cap is 20,000, so a human can review it. Rules whose selector targets the badge classes or attribute (.f_brand_*, [data-findalo-brand]) are DELETED on save —the whole rule, replaced by a comment— and the panel tells you how many will go before you save. It is a pattern filter, not intent detection: a rule that hides the badge some other way passes the filter, and then the widget's integrity check cuts it at runtime.