If you use a Static Content region with the Tabs Container template to present subregions on separate tabs, in APEX 21.2 you might notice during initial page render that you momentarily see the contents of all the tab “pages” before they disappear behind the initially selected tab. Depending on the contents of the tab pages, the result may be more or less noticeable. However, since one of my applications presents multiple tabs of colorful Badge Lists, the “Easter eggs” below compelled me to search for a solution…

Luckily, my colleagues Tim and John helped me with a combination of simple CSS suggestions that solved the problem. After adding two rules to an application-level CSS file, the undesirable effect vanished.
While the two CSS rules that avoid the flashing tabs could be applied to each page where needed, I prefer a “one-and-done” solution. An application-level CSS file is best for rules that apply to all pages, so I added the two rules in there. Under Shared Components > Static Application Files I created an app.css
file with the contents shown below:

app.css
file with two rules to suppress flashing of all tab containers’ contentsNext, I clicked on the copy icon next to the #APP_FILES#app#MIN#.css
name under Reference to copy that file path to the clipboard so I could paste it into the list of CSS files that my application will load with every page. That configuration is also under the Shared Components settings, on the User Interface Attributes page, in the Cascading Style Sheets section. I pasted the file reference on its own line in the text area as shown below:

With this app-level CSS file in place, my landing page was looking sharp.

Energized that my app’s tab pages were looking great now, I turned my focus next to my application’s Cards regions. I noticed that APEX shows a row of placeholder cards when the page initially draws to help the end-user understand an asynchronous data request is in progress to retrieve the actual card information.

This employs a familiar technique that other modern web applications like LinkedIn, Facebook, and YouTube use.

In situations where the card data takes time to retrieve, placeholders are a useful affordance for the end-user. In my particular app, it seemed to add less value since my cards render almost instantly.
I used Chrome Dev tools to explore the structure of the page to see if a similar CSS technique might be able to hide the placeholder cards. After none of my experiments panned out, again my colleague Tim nudged me back onto the happy path with a suggestion. I edited my app.css
file to add the one additional rule you see below that delivered the results I was hoping for.
/* Contents of app.css */
/*
* Suppress tab container contents from flashing
* during initial page render
*/
.a-Tabs-panel {
display: none;
}
.no-anim .t-TabsRegion-items > div {
display: none;
}
/*
* Suppress cards region from rendering initial row
* of placeholder cards during initial page render
*/
.no-anim .a-CardView-item > div {
display: none;
}
These CSS rules use a combination of class selectors ( .someClassName
) and the child element selector ( > someElement
). Effectively they say:
- Hide elements with the
a-Tabs-panel
class - Hide
div
child of parent with classt-TabsRegion-items
inside element with classno-anim
- Hide
div
child of parent with classa-CardView-item
inside element with classno-anim
Keep in mind that these rules only affect the initial display state of the affected elements since APEX automatically makes the relevant elements visible again once they are ready for the end-user to see.
With these three rules in place, the user sees only the selected tab’s Badge List as expected and my quick-loading cards without placeholders. In case you want to try the example application, download it from here. Try commenting out the CSS rules in app.css
in the example to see the difference with and without so you can decide what’s best for your own application use cases.

Nota Bene
I’ve tested these techniques in APEX 21.2 but need to remind you that the particular structure of how APEX universal theme generates HTML elements in this release is not guaranteed to remain the same across future APEX releases.