Skip to content

App Settings Screen with Grouped Lists

App settings screen with an account card, grouped lists, notification switches, a theme select with dark mode, a language bottom sheet, privacy options, help links and sign out.

Also known as: settings page ui, ios style settings screen, mobile app preferences screen, account settings template

App Settings Screen with Grouped Lists live demo

Open in new tab

Tailwind CSS code (HTML, CSS, JS)

An app settings screen built with Tailwind CSS in the familiar iOS style: a large title with search, an account card, grouped lists with coloured icons, notification switches, a theme select with a working dark mode, a language bottom sheet, privacy options, help links and a sign out action sheet. It is an HTML mobile template for mobile websites and PWAs and can be packaged as a native app with Capacitor.

How it works

The root .asg-app is a phone-width column on a light grey background. Each ul.asg-group is a white rounded group of .asg-row items with inset separators drawn by .asg-row + .asg-row::before. Rows hold a checkbox with role="switch" (.asg-switch), a native <select> or a .asg-row-link.

script.js adds the behaviour. Every switch shows a short toast when it changes, and turning off Push notifications disables the switches marked data-asg-needs-push. The Theme select sets data-theme on .asg-app to light or dark (or follows prefers-color-scheme for System), and all colours switch through custom properties. The Language row opens #asg-lang, a <dialog> bottom sheet with Cancel and Done: Done writes the choice into [data-asg-lang-value], Cancel restores the saved one. Sign out opens #asg-signout-sheet, an action sheet that asks for confirmation. Sheets close with Escape or a backdrop tap. Typing in the search field filters rows by their text and data-asg-label keywords and hides empty groups.

Customization

  • --asg-accent and --asg-danger on .asg-app in style.css: the blue for links, values and the active tab, and the red for Sign out.
  • The .asg-app[data-theme="dark"] block holds the dark palette (--asg-bg, --asg-card, --asg-sep and more); adjust it, or mark the Dark option of [data-asg-theme] as selected to start in dark mode.
  • Add a setting by copying an .asg-row; give it a data-asg-label with extra search keywords.
  • Change the colour of a row icon with the background utility on its .asg-ico span.
  • Add data-asg-needs-push to any switch that should depend on Push notifications.
  • Replace the toast in the switch change handler and the sign out handler with fetch() calls to your settings and auth API.

Use cases

  • Productivity and planner apps: notification, theme and language preferences.
  • Social and messaging apps: privacy, blocked accounts and app lock.
  • Subscription apps and SaaS PWAs: account card with plan badge and help links.
  • Any Capacitor app: a ready settings tab in a native look.

Accessibility

Switches are real checkboxes with role="switch" and visible labels, the theme picker is a native labelled <select>, and the language list is a fieldset of radio buttons. Sheets are labelled modal <dialog> elements, the sign out sheet has a description, toasts use role="status", and the active tab has aria-current="page". Animations respect prefers-reduced-motion.

Usage notes

The portrait comes from Unsplash; replace it with your own image. The name and email are sample data. Bootstrap Icons and Figtree load from CDNs.

App Settings Screen with Grouped Lists at a glance

Framework
Tailwind CSS
Code
HTML, CSS, JavaScript
JavaScript
Vanilla JavaScript, no jQuery
Dependencies
Tailwind CSS, fonts.googleapis.com, Bootstrap Icons
Layout
Mobile-first app screen, centred on wider screens
Category
Mobile Settings
License
Free for personal and commercial use

Questions about this template

Can I use the App Settings Screen with Grouped Lists code for free?

Yes. You can copy or download the code and use it in personal and commercial projects, including client work. No sign-up is needed. Reselling it as part of a component library or template collection is not allowed; see the license.

How do I add it to my website?

Load Tailwind CSS and fonts.googleapis.com and Bootstrap Icons from a CDN (the links are under Requirements). Paste the HTML where the component should appear, add the CSS to your stylesheet and load the JavaScript before the closing </body> tag. Download HTML gives you a complete page with everything already linked.

Does it need jQuery or a JavaScript framework?

No. The script is plain vanilla JavaScript, so it works without jQuery, React or Vue. You can still use the markup inside those frameworks.

Can I turn this screen into an iOS or Android app?

Yes. It is plain HTML, CSS and JavaScript, so it works in a mobile website or progressive web app as it is. To ship it as a store app, put it in the web folder of a Capacitor or Cordova project and build it for iOS and Android; replace the sample data with calls to your own API.

How does it look on a desktop screen?

The screen is designed for phones. On wider screens it stays at phone width in the middle of the page, so it still looks like an app. The live demo opens at mobile width; use the Tablet and Desktop buttons to check other sizes.

Requirements

Add these to your page (already included in the download):

  • <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
  • <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap">
  • <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">

The Tailwind browser build is for prototyping. In production, compile Tailwind with its CLI or your bundler.

App Settings Screen with Grouped Lists – Tailwind CSS mobile settings component screenshot
App Settings Screen with Grouped Lists · Tailwind CSS Mobile Settings

More Mobile Settings

Notification Preferences Screen – Bootstrap 5 mobile settings preview

Notification Preferences Screen

Mobile notification settings screen with push, email and SMS switches per category, a pause-all toggle, quiet hours with a time range and days, and a save bar with unsaved state.

Subscription and Billing Screen – Bootstrap 6 mobile settings preview

Subscription and Billing Screen

Subscription management screen for mobile apps with current plan card, usage bars, plan switcher with proration, payment method update and an invoice list.