M365 Show -  Microsoft 365 Digital Workplace Daily
M365 Show with Mirko Peters - Microsoft 365 Digital Workplace Daily
Stop Building Ugly Power Apps: Master Containers Now
0:00
-23:00

Stop Building Ugly Power Apps: Master Containers Now

Opening – The Ugly Truth About Power Apps

Most Power Apps look like they were designed by someone who fell asleep halfway through a PowerPoint presentation. Misaligned buttons, inconsistent fonts, half-broken responsiveness—the digital equivalent of mismatched socks at a corporate gala. The reason is simple: people skip Containers. They drag labels and icons wherever their mouse lands, then paste formulas like duct tape. Meanwhile, your branding department weeps. But here’s the fix: Containers and component libraries. Build once, scale everywhere, and stay perfectly on-brand. You’ll learn how to make Power Apps behave like professional software—responsive, consistent, and downright governed. IT loves structure; users love pretty. Congratulations—you’ll finally please both.


Section 1 – Why Your Apps Look Amateur

Let’s diagnose the disease before prescribing the cure. Most citizen-developed apps start as personal experiments that accidentally go global. One manager builds a form for vacation requests, another copies it, changes the color scheme “for personality,” and within six months the organization’s internal apps look like they were developed by twelve different companies fighting over a color wheel. Each app reinvents basic interface patterns—different header heights, inconsistent padding, and text boxes that resize like they’re allergic to symmetry.

The deeper issue? Chaos of structure. Without Containers, Power Apps devolve into art projects. Makers align controls by eye and then glue them in place with fragile X and Y formulas—each tweak a cascading disaster. Change one label width and twenty elements shift unexpectedly, like dominoes in an earthquake. So when an executive asks, “Can we add our new logo?” you realize that simple graphic replacement means hours of manual realignment across every screen. That’s not design; that’s punishment.

Now compare that to enterprise expectations—governance, consistency, reliability. In business, brand identity isn’t vanity; it’s policy. The logo’s position, the shade of blue, the margins around headers—all of it defines the company’s visible integrity. Research on enterprise UI consistency shows measurable payoffs: users trust interfaces that look familiar, navigate faster, make fewer mistakes, and report higher productivity. When your Power Apps look like cousins who barely talk, adoption plummets. Employees resist tools that feel foreign, even when functionality is identical.

Every inconsistent pixel is a maintenance debt note waiting to mature. Skip Containers and you multiply that debt with each button and text box. Update the layout once? Congratulations: you’ve just updated it manually everywhere else too. And the moment one screen breaks responsiveness, mobile users revolt. The cost of ignoring layout structure compounds until IT steps in with an “urgent consolidation initiative,” which translates to rebuilding everything you did that ignored best practices. It’s tragic—and entirely avoidable.

Power Apps already includes the cure. It’s been there this whole time, quietly waiting in the Insert panel: Containers. They look boring. They sound rigid. But like any strong skeleton, they keep the body from collapsing. And once you understand how they work, you stop designing hunchbacked monsters disguised as apps.


Section 2 – Containers: The Physics of Layout

A container in Power Apps is not decoration—it’s gravitational law. It defines how elements exist relative to one another. You get two major species: horizontal and vertical. The horizontal container lays its children side by side, distributing width according to flexible rules; the vertical one stacks them. Combine them—nest them, actually—and you create a responsive universe that obeys spatial logic instead of pixel guessing.

Without containers, you’re painting controls directly on the canvas and telling each, “Stay exactly here forever.” Switch device orientation or resolution, and your app collapses like an untested building. Containers, however, introduce physics: controls adapt to available space, fill, shrink, or stretch depending on context. The app behaves more like a modern website than a static PowerPoint. Truly responsive design—no formulas, no prayers.

Think in architecture: start with a screen container (the foundation). Inside it, place a header container (the roofline), a content container (the interior rooms), and perhaps a sidebar container (the utility corridor). Each of those can contain their own nested containers for buttons, icons, and text elements. Everything gets its coordinates from relationships, not arbitrary numbers. If you’ve ever arranged furniture by actual room structure rather than coordinates in centimeters, congratulations—you already understand the philosophy.

Each container brings properties that mimic professional layout engines: flexible width, flexible height, padding, gap, and alignment. Flexible width lets a container’s children share space proportionally—two buttons could each take 50%, or a navigation section could stretch while icons remain fixed. Padding ensures breathing room, keeping controls from suffocating each other. Gaps handle the space between child elements—no more hacking invisible rectangles to create distance. Alignment decides whether items hug the start, end, or center of their container, both horizontally and vertically. Together, these rules transform your canvas from a static grid into a living, self-balancing structure.

Now, I know what you’re thinking: “But I lose drag-and-drop freedom.” Yes… and thank goodness. That freedom is the reason your apps looked like abstract art. Losing direct mouse control forces discipline. Elements no longer wander off by one unintended pixel. You position objects through intent—“start, middle, end”—rather than by chance. You don’t drag things; you define relationships. This shift feels restrictive only to the untrained. Professionals call it “layout integrity.”

Here’s a fun pattern: over-nesting. Beginners treat containers like Russian dolls, wrapping each control in another container until performance tanks. Don’t. Use them with purpose: structure major regions, not every decorative glyph. And for all that is logical, name them properly. “Container1,” “Container2,” and “Container10” are not helpful when debugging. Adopt a naming convention—cnt_Header, cnt_Main, cnt_Sidebar. It reads like a blueprint rather than a ransom note.

Another rookie mistake: ignoring the direction indicators in the tree view. Every container shows whether it’s horizontal or vertical through a tiny icon. It’s the equivalent of an arrow on a road sign. Miss it, and your buttons suddenly stack vertically when you swore they’d line up horizontally. Power Apps isn’t trolling you; you simply ignored physics.

Let’s examine responsiveness through an example. Imagine a horizontal container hosting three icons: Home, Reports, and Settings. On a wide desktop screen, they align left to right with equal gaps. On a phone, the available width shrinks, and the same container automatically stacks them vertically. No formulas, no conditional visibility toggles—just definition. You’ve turned manual labor into consistent behavior. That’s the engineering leap from “hobby project” to “enterprise tool.”

Power Apps containers also support reordering—directly from the tree view, no pixel dragging required. You can move the sidebar before the main content or push the header below another region with a single “Move to Start” command. It’s like rearranging Lego pieces rather than breaking glued models.

Performance-wise, containers remove redundant recalculations. Without them, every formula reevaluates positions on screen resize. With them, spatial rules—like proportional gaps and alignment—are computed once at layout level, reducing lag. It’s efficiency disguised as discipline.

There’s one psychological barrier worth destroying: the illusion that formulas equal control. Many makers believe hand-coded X and Y logic gives precision. The truth? It gives you maintenance headaches and no scalability. Containers automate positioning mathematically and produce the same accuracy across devices. You’re not losing control; you’re delegating it to a system that doesn’t get tired or misclick.

Learn to mix container types strategically. Vertical containers for stacking sections—header atop content atop footer. Horizontal containers within each for distributing child elements—buttons, fields, icons. Nesting them creates grids as advanced as any web framework, minus the HTML anxiety. The result is both aesthetic and responsive. Resize the window and watch everything realign elegantly, not collapse chaotically.

Here’s the ultimate irony: you don’t need a single positioning formula. Zero. Entire screens built through containers alone automatically adapt to tablets, desktops, and phones. Every update you make—adding a new field, changing a logo—respects the defined structure. So when your marketing department introduces “Azure Blue version 3,” you just change one style property in the container hierarchy, not sixteen screens of coordinates.

Once you master container physics, your organization can standardize layouts across dozens of apps. You’ll reduce support tickets about “missing buttons” or “crushed labels.” UI consistency becomes inevitable, not aspirational. This simple structural choice enforces the visual discipline your corporation keeps pretending to have in PowerPoint presentations.

And once every maker builds within the same invisible skeleton, quality stops being a coincidence. That’s when we move from personal creativity to governed design. Or, if you prefer my version: elegance through geometry.

Section 3 – Component Libraries: Corporate Branding on Autopilot

Containers are how you stop your app from falling apart. Component libraries are how you stop your company’s identity from doing the same. Think of them as genetic engineering for user interfaces—one central DNA strand that every app inherits. Every header, button, and navigation menu comes pre-trained to behave, to wear the right colors, and to never embarrass marketing in front of the CEO. Build it right once, then let it replicate indefinitely. That’s not just reusable design; that’s controlled evolution.

A component library in Power Apps is a shared repository of reusable parts—self-contained pieces of interface and logic that any app in your tenant can borrow. Headers, navigation bars, dialog boxes, even the humble “Submit” button can live here, branded to corporate standards. Instead of every maker choosing fonts like teenagers picking outfits, you centralize the wardrobe. And when you update the library—new font, revised logo, accessibility tweaks—every app that uses those components updates instantly. One push, global compliance. It’s like replacing every office chair overnight without calling facilities.

The obvious benefit is speed. When your organization builds fifty apps a year, and each one needs the same navigation panel and footer, why rebuild them? Library components drop in with a drag and stay linked to their master copy. Those reusable chunks carry consistent behavior—responsive layout, accessibility tags, even hover colors. So instead of wrangling details, your makers focus on solving business problems. They build logic, not logos.

From a branding perspective, component libraries enforce uniformity with mathematical precision. Corporate colors are embedded. Typography is locked. Margins are correct because they’re not left to opinion. The library enforces design like policy enforces compliance. That’s what governance actually looks like in UI form. You’re not hoping developers remember your style guide; you’ve encoded it.

Technically, good libraries follow disciplined conventions. Start with clear naming—every component begins with a prefix like cmp_, so cmp_Header and cmp_ButtonPrimary don’t vanish into random control soup. Expose only what should be configurable: text, images, visibility flags, and brand-approved variations. That’s property-driven customization. Makers can personalize behavior without altering appearance, sparing you from Frankenstein interfaces stitched from rogue gradients. And yes, only use supported APIs. The moment you poke undocumented framework objects to “make it cooler,” you’ve introduced a ticking governance bomb. Microsoft updates Power Apps, your secret tweak breaks, and suddenly everyone’s app header disappears. Delightful.

Now, about those updates. In large enterprises, component libraries shouldn’t rely on goodwill; they should rely on automation. Use CI/CD pipelines—continuous integration and deployment—to push tested, production-ready component packages across environments. That guarantees consistency and rollback control. Change the logo once in development, run tests for accessibility and performance, approve it in governance review, then publish. Overnight, every app running that library aligns to the latest corporate identity. Compliance becomes a background process instead of an endless email campaign.

Governance teams love component libraries because they act as code-level policy. Each control you distribute can embed audit requirements: correct font size for accessibility, compliant color contrast ratio, even telemetry for adoption reporting. Every app that uses these inherits compliance automatically. If containers give you structural integrity, the component library gives you ethical and branding integrity. Together, they form a self-enforcing design ecosystem.

Here’s the real-world payoff. Suppose marketing decides to shift from “Azure Blue” to “Teal of Tomorrow.” In the bad old days, ten app makers would race to recolor their projects manually, miss a few buttons, and produce a patchwork of rebellion. With a component library, you swap hex code once, republish, and every app choir sings the new corporate hymn by morning. That is what alignment feels like—instantaneous obedience powered by architecture.

Another point for the data-driven among you: standardization isn’t just pretty—it’s measurable efficiency. Studies of enterprise UI consistency show adoption rates climbing, error rates dropping, and onboarding time collapsing. When every internal tool looks and behaves the same, users trust new ones immediately. Component libraries deliver that familiarity automatically. They turn “another Power App” into “just another screen in the system I already know.” Trust becomes muscle memory.

Of course, some will grumble. “But what about creativity?” They can still be creative—inside guardrails. Components can expose non-structural properties: titles, icons, maybe accent highlights. Creativity flourishes within safe boundaries, and IT sleeps better knowing those boundaries exist. Governed creativity, not chaos.

Combine this with containers, and you unlock something close to elegance. Containers ensure spatial discipline; components enforce branding discipline. Together they form what no citizen developer ever admits to loving—constraints. Constraints yield coherence. Your app portfolio finally looks like it belongs to one company instead of a design circus.

In short, component libraries automate taste. They transform branding from suggestion to inheritance. Your makers work faster, your IT department governs smarter, and your users stop wondering why every app’s “Submit” button is a different shade of regret. One library, one brand, one identity—updated centrally, propagated universally. Congratulations, you’ve just achieved design autopilot.

Section 4 – Building a Responsive, Brand-Perfect App

Let’s actually build something worthy of being shown in a boardroom rather than hidden behind the “Preview” button. Start with a blank screen—yes, I know the templates exist, but blissful ignorance ends today. Step one: add a top-level vertical container. This is your screen skeleton, the vertebrae that everything else attaches to. Set its height and width to fill the app, and check “Flexible Height” if you enjoy watching things automatically behave. Within it, carve out four essential organs—header, main area, sidebar, and footer. These are not suggestions; they are the oldest truths of interface design.

The header container goes first. Inside it, drop a brand-approved component from your library—cmp_Header perhaps. It already carries your company logo, color, and navigation pattern, so you don’t have to play decorator. The header is sacred ground: lock its height, define a subtle drop shadow, and leave enough padding for your logo to breathe. Not too much, or it feels like a dating app banner; not too little, or your brand suffocates. This section should never depend on formulas controlling Y positions and offsets. The container handles it; you just declare alignment and justification—center vertically, start horizontally—done.

Below that, insert another container—horizontal this time—for your main working area. Give it two children: one vertical container for the sidebar on the left and one for the primary content area on the right. Now you have geometry that mirrors every professional dashboard ever built. The sidebar could hold navigation buttons—imported as cmp_NavButton from your component library—each with property-driven customization for labels and icons. Stack them vertically with a neat gap of ten pixels. Alignment: start both horizontally and vertically. That way, when a user resizes the window, the buttons stay elegantly pinned, not flung like laundry in a windstorm.

The main working area container is where your app’s brain lives. Add a vertical sub-container for filters on top and a content area below—perhaps a gallery or form. Remember, containers nest like logical arguments; the outer defines distribution, the inner defines behavior. If you flexibly size the content container, the gallery expands automatically to fill remaining space. No numerical gymnastics required. That’s the beauty of declaring intention instead of micromanaging pixels.

Now the footer—this is optional, yet civilized. Another horizontal container, maybe forty pixels high, with a subdued background pulled from your brand’s neutral palette. Drop in a company copyright label on the left and a version text on the right, aligned respectively. Padding makes it breathable; a gap of twenty pixels keeps items respectable distances apart. On mobile devices, this section will shrink gracefully because flex properties take over. You’ll be surprised how dignified it looks when you rotate from landscape to portrait—it behaves like it’s been trained.

With these containers set, you can apply your corporate theme globally. Use the component library’s color references—stored perhaps as properties in your header or theme component—to populate background and text colors automatically. Want your typography uniform? Great, the library already dictates the font family and size scale. Apply the theme container at the screen level and every descendant obeys, saving you from the hell of manual font correction. You’ve centralized taste once and for all.

Now let’s test responsiveness. Open the app preview, drag the corner, and watch the layout react. On a desktop, sidebar and main area sit politely side by side. On a phone, the horizontal container collapses into a vertical stack—sidebar on top, content below—without writing a single formula. This is not magic; it’s math. Containers recalculate proportional distribution automatically. The result: identical usability on every device, no expression editing required.

Let’s set a ground rule: the “no formula” policy. Position and size come exclusively from container logic, never from App.Width * .8 nonsense. Formulas are for calculations, not layout therapy. Instead, dictate relationships: inside, beside, above, below. Once you internalize that grammar, you stop debugging geometry. The app behaves like a responsive website because, conceptually, it is one—just without the HTML post-trauma.

Now for the artistry—the spacing, the feel. Use alignment and justification smartly. For example, center user controls vertically within their parent container but justify them to the start horizontally for consistency with left-to-right reading habits. Play with the gap property to establish rhythm; consistent gaps substitute for inconsistent intuition. Fifteen pixels is usually the Goldilocks zone: not cramped, not airy. Padding performs the same function internally, separating content from edges. If your interface feels “off,” it’s usually a padding crime.

Common pitfalls? Over-flexibility—everything set to expand simultaneously, leaving the engine to guess. Pick your flex battles. Decide which container is responsible for absorbing extra space and turn off flexible height or width on the rest. Another issue: redundant nesting, wrapping every element in a micro-container until you’re five layers deep. That’s not structure—it’s digital nesting dolls. Simplify. The fewer levels, the faster Power Apps renders and the easier your coworkers can edit without therapy.

And occasionally, you’ll face the ultimate sin: misaligned branding elements. Someone decides to manually recolor a component because “it looked dull.” That’s why the component library exists. Direct them there, not to the color picker. Centralization is the antidote to creativity gone rogue. You alter the master library’s branding palette; every inherited component follows suit. You don’t chase individual apps with design police.

Here’s an anecdote, equal parts cautionary and satisfying. A client once complained that their inventory management app behaved like molasses and looked like a collage. Each screen had unique headers and button placements maintained by different teams. After we containerized and switched to a single component library, the rebuild time dropped by half, responsiveness tripled, and every app suddenly matched the corporate portal. Guess what happened to IT’s weekly support queue? It vanished. Not because people stopped building, but because structure stopped breaking.

By now, your responsive, brand-perfect app feels effortless. Every element behaves predictably; every color and font aligns automatically. You’ve graduated from improvisation to orchestration. That’s the transformative moment where citizen development becomes enterprise architecture. The interface looks like it was designed by someone paid to care. And now that you’ve mastered aesthetic order, it’s time to scale that discipline across your organization—responsibly, of course.

Section 5 – Governed Creativity: Scaling Citizen Developers Without Chaos

At this point, you’ve built a masterpiece—or at least an app that no longer looks like it was assembled under duress. But what happens when hundreds of citizen developers start “improving” it? Ah, chaos—the natural state of ungoverned enthusiasm. Enterprise history is littered with noble projects that devolved into unmanageable Franken-apps because someone thought pastel buttons were friendlier. Governance exists to protect beauty from democracy.

Citizen development, for the uninitiated, is the act of letting non-developers create apps using tools like Power Apps. The brilliance is speed. The risk is entropy. Without structure, you end up with 500 different takes on “Submit,” each slightly misaligned, all branded in various interpretations of blue. Scaling citizen developers without chaos requires what I call governed creativity—freedom bound by architectural laws.

Let’s start with frameworks. Every organization serious about Power Apps eventually discovers the concept of a Center of Excellence, or CoE. Think of it as a United Nations for app makers, complete with environmental policies, quality checks, and the occasional bureaucratic delay for your own good. The CoE defines who can build, where they can publish, and what base components they must use. They own the component library, document naming conventions, and ensure that every citizen developer operates within approved boundaries. It’s not oppression; it’s survival at scale.

Then we layer environment policies. Development, test, production—segregated like civilized habitats. Personal productivity apps may roam freely in “Sandbox.” Departmental apps live one level above with limited oversight. Mission-critical apps—anything that touches finance, HR, or customer data—reside under IT supervision with gated deployment. This tiered complexity model mirrors governance research: autonomy for simple apps, controlled collaboration for departmental use, and professional oversight for enterprise-critical solutions. Each level gets different permissions, like ecosystem niches. Remove these guardrails and soon your HR intern’s experimental project is connected directly to your payroll database. Delightful.

Now, where do containers and component libraries fit into this civic architecture? They’re the enforceable design guardrails. Containers dictate structure—visual alignment is no longer a creative decision; it’s a requirement of the layout system. Component libraries embed compliance—the font, colors, and accessibility settings are inherited. Even when citizen developers improvise functionality, they still operate inside design geometry and brand law. You’ve effectively encoded governance rules into the tools themselves. IT doesn’t have to hover because the system enforces discipline for them.

Scalability, therefore, becomes not a question of “can we handle more app makers?” but “can our structures handle their creations?” With containers and libraries as your invisible referees, you can. Governance ceases to be an email campaign and transforms into background physics. Makers focus on business logic—automating workflows, solving bottlenecks—without re-litigating design. Corporate branding remains intact because it’s no longer optional. That’s not tyranny; that’s efficiency posing as aesthetics.

Risk mitigation also sneaks in through this standardization. When every app inherits the same foundational components, updates—security patches, accessibility fixes, crash corrections—propagate universally. Audit teams love that. So do legal departments tracking compliance across digital tools. Suddenly, quality assurance becomes simpler because layouts are predictable; automated tests can traverse screens without guessing where buttons live. Maintenance costs drop; onboarding new makers becomes trivial. “Follow the template, use the approved components, deploy through the pipeline”—a repeatable ritual that protects innovation from itself.

Ironically, governance doesn’t kill creativity—it concentrates it. Once design and structure are standardized, makers spend brainpower on what matters: business value. They stop debating hexadecimal shades of blue and start solving actual workflow problems. Structure frees imagination by removing trivial decisions. It’s identical to classical music: every composer uses the same 12 notes, yet somehow we got Bach, Beethoven, and occasionally smooth jazz disasters. The rules don’t stifle art; they make art coherent.

So when someone says, “Governance slows us down,” point out that an ungoverned app portfolio is a slow-motion crash. Proper governance—complete with container hierarchy, branded component library, and CoE oversight—actually accelerates development by preventing rework. You’re building on known good patterns. It’s like assembling Lego sets pre-sorted by color rather than rummaging through chaos.

Different organizations adopt different governance flavors: policy-driven (Data Loss Prevention rules, access controls), collaborative (shared channels between IT and business units), or automated (CI/CD enforcing approval workflows). But at heart, all successful models share one truth: they separate aesthetics from autonomy. You can build anything you like—as long as it looks and behaves like it belongs here.

Good structure is invisible. No one praises gravity for holding them upright, but remove it and you’ll notice immediately. Similarly, when every app from your citizen developers looks coherent, no one will cheer the CoE. They’ll just use the apps. And that, oddly, is the ultimate compliment: governed design so seamless, it feels natural.

Now that your creative chaos is properly domesticated, let’s close with the philosophy behind it—the elegant discipline that keeps technology civilized.

Conclusion – The Elegant Discipline

Structure isn’t the enemy of creativity; it’s the condition that makes it possible. Containers and component libraries turn chaotic enthusiasm into reliable performance. They enforce alignment, branding, and responsiveness so your organization never has to choose between beauty and governance again. Once you internalize that, you stop fighting the system and start composing within it.

If your Power Apps still rely on pixel-perfect luck and color roulette, you’re not building innovation—you’re decorating dysfunction. Embrace structure. Let containers manage layout, let component libraries police identity, and let governance orchestrate the rest. You’ll produce apps that scale, survive audits, and—miracle of miracles—look professional.

Want the advanced version—the full design system that enterprise architects use to make Power Apps indistinguishable from native applications? Subscribe and watch the next episode. Efficiency, consistency, and elegance aren’t accidents; they’re habits. Form one now.

Discussion about this episode

User's avatar