# Adaptive interfaces The `adaptive` prop enables mobile presentation below the configured breakpoint. Supported controls open a modal suited to their content. It is opt-in; its default is `false`. ## Try it Use the device buttons to switch between desktop, tablet, and mobile viewports. Open a control to compare its popup and modal presentations. The preview uses a real embedded viewport, so you can try mobile behavior without resizing your browser. ```vue ``` ## Supported controls | Component | Adaptive behavior | | --------------------------------------------------------------------- | ------------------------------------------------------------- | | [Select](https://selarasui.my.id/components/forms/select) | Selection popup becomes a modal. | | [Autocomplete](https://selarasui.my.id/components/forms/autocomplete) | A modal contains the input, suggestions, and selected values. | | [Dropdown](https://selarasui.my.id/components/overlays/dropdown) | Menu actions appear in a modal. | | [DatePicker](https://selarasui.my.id/components/forms/date-picker) | Date and time picker content appears in a modal. | | [ColorPicker](https://selarasui.my.id/components/forms/color-picker) | Color controls appear in a modal. | Models and item actions use the same API in either presentation. Other overlay components do not automatically acquire an `adaptive` prop. ## Breakpoint The default is Tailwind's `md` breakpoint. Set `selaras.adaptive.breakpoint` in Nuxt configuration to choose another Tailwind breakpoint token. Define its length in CSS; see [Nuxt configuration](https://selarasui.my.id/overview/getting-started/nuxt-configuration#adaptive-breakpoint). Server rendering starts with desktop presentation. The viewport is measured after mount, and an open adaptive control retains its chosen presentation until it closes. Test both viewport sizes and keyboard interaction in your application. # Component usage Selaras components are auto-imported with the `S` prefix. Start with an existing component, then customize its props and slots before building a replacement. ## State and events ```vue ``` Component reference pages document models, events, item shapes, and slots. Item labels are your content; internal labels are controlled through [messages](https://selarasui.my.id/overview/getting-started/messages). ## Customization Use props for supported behavior and appearance. Use slots for custom content, `class` for the root, and `:ui` for specific styled parts. See [Component styling](https://selarasui.my.id/overview/theming/component-styling) for merging and precedence. Wrap your app in [SApp](https://selarasui.my.id/components/layout/app) for providers. Add [Toast](https://selarasui.my.id/components/overlays/toast) and [CommandPalette](https://selarasui.my.id/components/overlays/command-palette) where their references describe; providers alone do not render these controls. ## Responsive interfaces Use [adaptive controls](https://selarasui.my.id/overview/getting-started/adaptive-interfaces) to opt into modal presentation on small screens. Responsive layout utilities and adaptive presentation solve different needs. # Icons Selaras uses [Nuxt Icon](https://nuxt.com/modules/icon){rel=""nofollow""} under the hood and installs its module automatically. `SIcon` wraps its `Icon` component, so Nuxt Icon configuration, providers, aliases, and custom collections also apply to Selaras icons. Icon names use `collection:name`; internal component icons default to Hugeicons. ## Local icons ```vue-html Search