web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :

Responsive Design Template

KickingApps Profile Picture Posted by KickingApps 628

In the following post, I explain the three attached companion apps/components.  I use the two components to design a fully responsive app, the Sample app is simply a reference tool.


When responsive design was announced as a feature in PowerApps, I could hardly wait to dig in and start creating. When I did, however, I found the process quite challenging. Without a visual reference, the need to continually Save and Publish the app in order to view and test the layout was a pain. With that in mind, I created the the scrnSimulator (component). The idea is to visually see how things will look for a preselected screen layout. Additionally, while researching responsive design, I stumbled upon responsive, fluid grids and thought it would be a great companion to the screen simulator. Below I do my best to describe each.

  • Screen Simulator Component - Mimic the various screen sizes I am designing for - primarily used as a visual reference and guide for determining dynamic height values of controls and Y positioning. 

I have found the most effective method for utilizing this template is to have the template open in one window and the actual app I am creating open in another. I use the template to create my layout. Once I am satisfied with the layout of controls, I:

1)'code' the property values into my actual app (for the selected screen size)

2) change the size of my template

3) re-order the controls so they fit the new screen size

4) update the code in my app, and repeat....

 

Y Property

To determine the Y property based on the layout, refer to lblY_Reference in the template 

The result of this calculation is I what I use to set the Y properties of the controls.

 

Height Property

Similar to the Y Property reference, I have a height reference label to determine and calculate the dynamic height of each control. Set the value of the control in the app to the result of the height reference control in the template * App.Height. 

** When switching layouts, this can be finicky, particularly transitioning to a large layout. I have found the best way to reset the view is to navigate from the component to Screen 1 and back to component. When back in the component, select the double arrow icon (zoom) and it should reset the view.

 

  • Fluid Grid Component - The Fluid Grid Component is comprised of gutters and columns; the values of the gutters and columns are what I use to set the 'X' property of my controls. The width of the gutters and columns dynamically calculate as the screen size changes. The grid is meant as another design reference. I DO add this to the actual app I am creating, toggle the grid on when I need a visual reference, and remove it from the app once it is completed and moved into production (optional). 

The 'X' property of each control is determined from the output of the collection results (calculated in the 'OnChange' of the slider control). Because the slider is on the screen, not in the component, the values will 'hold' if the component is removed.

 

  • Sample App - This is simply a reference for the fluid grid component. The app has 3 text inputs that default to 'C4', and '3*1'. If you toggle the grid on, you will see that, with the above values, the Button's X value will be at column 4 and width Button = 3 columns + 1 gutter. Change the values, and you will see the button change.  Additionally, minimize the screen and you will see the width of the columns/gutters re-calculating on the fly.
  • Finally, I have been experimenting with fluid/responsive text. I left the text boxes I am experimenting with in the app.

** Note - this is attached in reply below due to 3 attachment limit. 

 

Not too long ago, the #PowerAddicts interviewed @Foyinb and she said "Just do the thing". While I can "make the thing", "explaining the thing" isn't so easy :). So, with that, if you have questions related to this template, please feel free to reach out via Twitter  - @tianaranjo (a.k.a. kickingapps) or tianaranjo@kickingapps.onmicrosoft.com


Categories:

Mobile App Design and User Experience

Comments

  • R3dKap Profile Picture R3dKap 1,594
    Posted at
    Responsive Design Template

    @sperry1625, you need to click on the download icon in the comment juste before your comment, start the Power Apps Studio and click File > Open > Browse files and then open the downloaded MSAPP file...

  • sperry1625 Profile Picture sperry1625 763 Super User 2024 Season 1
    Posted at
    Responsive Design Template

    Neither of these items can be imported as a Component.  There is no link for a Sample app.  Are these still valid?

  • KickingApps Profile Picture KickingApps 628
    Posted at
    Responsive Design Template

    Sample app - attached here

  • KickingApps Profile Picture KickingApps 628
    Posted at
    Responsive Design Template

    @Anonymous  - how'd it work for you. Did that last app I sent help you create what you needed?

  • Community Power Platform Member Profile Picture Community Power Pla...
    Posted at
    Responsive Design Template

    @KickingAppsas I start to implement it, I will def reach back out to show you stuff. 

     

    On the design front, I would be happy to help. In its simplest form, I try to follow the standard 8pt grid. I am sure you have read many of these articles below, but thought it would be worth sharing for others. 

     

    As a positive vent, 🙂 it would be great if MSFT would invest more in the UI to have a grid that is easier for designers or every day business folks to understand how to do layouts. Example would be like Figma or Sketch do it. This would massively help development and lead to better apps that are visually more appealing. 

     

    https://builttoadapt.io/intro-to-the-8-point-grid-system-d2573cde8632

     

    https://material.io/design/layout/responsive-layout-grid.html

     

    https://blogs.msdn.microsoft.com/davidni/2017/01/08/advanced-powerapps-visualizations-with-dynamic-svgs/

     

    https://designsystem.quickbooks.com/foundations/grids/

     

    https://medium.com/sketch-app-sources/8-point-soft-grids-in-sketch-e8f1d5ca2cd4#.8d1socyrq

     

  • KickingApps Profile Picture KickingApps 628
    Posted at
    Responsive Design Template

    @Anonymous I think the overall answer to your latest questions is yes; you could do some trickery to apply similar technique regardless of what you use.  I thought this would be great for desktop ‘app’ with the header/menu ‘pinned’ to the top as the page scrolls.  However, so far, I have not found a way to make that possible.  (But I’m stubborn and will put a little more effort into it :)).

     

    Re: you owing me; not at all. I have rec’d the generous help of so many along this journey. It’s the least I can do.

    I would, however, appreciate any feedback you might offer if you are using the responsive grid from this original post.  Especially given your design expertise.  If I can improve it, I would love to.  And if you can point me to the best place to learn proper design best practices, please share.

     

    Good luck and let me know if I can help further.

  • Community Power Platform Member Profile Picture Community Power Pla...
    Posted at
    Responsive Design Template

    @KickingApps works now when published. 

     

    Curious, on this design you made. If my table by default is 10 rows. Then on page load, there are 100 records coming from the DB, would this design you created enable the table height to grow based on the fetched data set? 

     

    Beyond just a table, I am also trying to use this for other elements such as containers with content in them. So that based on the height of the content, the container itself would grow vs injecting scroll bars everywhere. One example could be a block of text that is retrieved from the DB that is 10 characters long vs 1000; think Lorem Ipsum blocks of content. Another example could be a modal. Basically all the same ideas, just growing blocks based on the content inside it.

     

    Thanks again for all your help! I owe ya 🙂 

  • KickingApps Profile Picture KickingApps 628
    Posted at
    Responsive Design Template

    Did you publish? If not, Publish and run it in the Player. Not the Editor/Studio.

    If you'd like to connect via Teams and screen share, I have time later today.

  • Community Power Platform Member Profile Picture Community Power Pla...
    Posted at
    Responsive Design Template

    @KickingApps 

     

    I ran the build you gave me, maybe I am doing something wrong. I am in preview mode, the columns add but I can't seem to scroll down the page. I shortened the page height in the video so you didn't have to see as many columns get added. Having issues in your build at 2160 height as well. 

     

    Could it be that in Preview mode it doesn't scroll and I have to publish first? 

    Here's a video: https://1drv.ms/v/s!AuEV00Xq5rHXh5k4YQ2VNevb-cT6Mw?e=KPO27u

     

    Thanks! 

  • KickingApps Profile Picture KickingApps 628
    Posted at
    Responsive Design Template

    Not out of my way at all.  I love this stuff and this just provided me something new to learn.  The trick now is how to make anything 'outside' of the gallery stick as the screen grows and becomes scrollable. Please let me know if this helps, if you improve it or come up with a better solution.  And I enjoy learning more about the design process from your posts.

     

    Keep sharing.