| Tutorial | Inputs | Plots | Layout |
[](#__codelineno-6-4) [](#__codelineno-6-5) or [](#__codelineno-6-6) [](#__codelineno-6-7)  [](#__codelineno-6-8) ''' [](#__codelineno-6-9))`
For security reasons:
* Only files within the `public` directory can be accessed
* Symlinks are not followed
* Path traversal attempts (e.g., `../`) are blocked
Layout[¶](#layout "Permanent link")
-----------------------------------
The marimo library also comes with elements for laying out outputs, including [`mo.hstack`](https://docs.marimo.io/api/layouts/stacks/#marimo.hstack " marimo.hstack"), [`mo.vstack`](https://docs.marimo.io/api/layouts/stacks/#marimo.vstack " marimo.vstack"), [`mo.accordion`](https://docs.marimo.io/api/layouts/accordion/#marimo.accordion " marimo.accordion"), [`mo.ui.tabs`](https://docs.marimo.io/api/inputs/tabs/#marimo.ui.tabs " marimo.ui.tabs"), [`mo.sidebar`](https://docs.marimo.io/api/layouts/sidebar/#marimo.sidebar " marimo.sidebar"), [`mo.nav_menu`](https://docs.marimo.io/api/inputs/nav_menu/#marimo.nav_menu " marimo.nav_menu"), [`mo.ui.table`](https://docs.marimo.io/api/inputs/table/#marimo.ui.table " marimo.ui.table"), and [many more](https://docs.marimo.io/api/layouts/).
Progress bars[¶](#progress-bars "Permanent link")
-------------------------------------------------
Use [`mo.status.progress_bar`](https://docs.marimo.io/api/status/#marimo.status.progress_bar " marimo.status.progress_bar") and [`mo.status.spinner`](https://docs.marimo.io/api/status/#marimo.status.spinner " marimo.status.spinner") to create progress indicators:
`[](#__codelineno-7-1)# mo.status.progress_bar is similar to TQDM [](#__codelineno-7-2)for i in mo.status.progress_bar(range(10)): [](#__codelineno-7-3) print(i)`
marimo comes with functions to display media, including images, audio, video, pdfs, and more. See the [API docs](https://docs.marimo.io/api/media/) for more info.
Inspecting objects[¶](#inspecting-objects "Permanent link")
-----------------------------------------------------------
marimo has built-in formatters for many objects, but sometimes the default representation isn't useful (e.g., `
[](#__codelineno-1-4) ''' [](#__codelineno-1-5))`
See [Static files](https://docs.marimo.io/guides/outputs/#static-files) for information about serving images and other static assets.