ComuniTEA’s design system is named The Tactile Sanctuary — a philosophy that deliberately rejects the sterile, clinical aesthetic common in medical and educational software. Instead of rigid grids and harsh dividers, it creates a digital environment that feels like a premium physical object: stacked sheets of warm, organic paper. Every decision prioritizes cognitive ease for children with Autism Spectrum Disorder (ASD) and AAC needs, while maintaining a high-end editorial quality that respects both the child’s intelligence and the caregiver’s need for a serene, predictable interface. The system is codified inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ElthonJohan/comunitea/llms.txt
Use this file to discover all available pages before exploring further.
constants/Colors.ts, constants/Theme.ts, and DESIGN.md.
Color System
Base Surfaces
The palette is rooted in earth tones designed to reduce visual overstimulation. The UI is treated as a series of physical layers — stacked sheets of heavy, warm paper — rather than a flat grid.Theme Palettes
ComuniTEA ships three complete color themes, each sharing the base surfaces but swapping the primary action color. The active theme is controlled by theappThemeStore (Zustand) and accessed via the useThemeColors() hook.
Sage
Muted sage green primary (
#a4c3b2). The default theme. Calming, nature-inspired, with warm rose as the accent. Header uses dark text on the green background.Rojo
Warm rose primary (
#eab4a4). Soft and warm. Uses sage green as the accent color. Ideal for users who respond positively to warm tones.Azul
Deep slate blue primary (
#37475a). The most contrast-rich theme. Uses white onPrimary text, making it suitable for users who benefit from higher contrast.Category Colors
Each AAC vocabulary category has its own dedicated color for quick visual identification. These are part ofbaseSurface and remain consistent across all three themes:
Roundedness Scale
Rounded corners are the most distinctive visual signature of The Tactile Sanctuary. Sharp 0px corners are prohibited in the main UI. The scale maps to numeric pixel values in React Native:| Token | px | rem equivalent | Typical usage |
|---|---|---|---|
sm | 8 | 0.5rem | Nested elements, inner chips |
default | 16 | 1rem | Small cards |
md | 24 | 1.5rem | Standard cards, AAC chips |
lg | 32 | 2rem | Main containers, sections |
xl | 48 | 3rem | Buttons, hero elements |
full | 9999 | — | Pills, chips, search bars |
Spacing Scale
TheSpace token exported from constants/Theme.ts defines consistent padding and gap values used across all components. Using these tokens — rather than ad-hoc pixel values — ensures that the rhythm of white space remains uniform and predictable, which is a primary navigation aid for ASD users.
| Token | px | Typical usage |
|---|---|---|
xs | 4 | Icon-to-label gap, tight internal padding |
sm | 8 | Standard internal padding, input inset |
md | 16 | Component padding, list item gap |
lg | 24 | Section spacing, card-to-card gap |
xl | 32 | Large section breaks |
xxl | 40 | Screen-level vertical rhythm |
Elevation and Shadow System
Traditional drop shadows are too visually noisy for children with sensory sensitivities. The Tactile Sanctuary uses ambient light principles — depth is achieved by stacking surface tiers, not by adding visible shadows.ShadowAmbient— used for floating elements that need a perceptible lift (e.g., the Sentence Strip, modal sheets). Blur of 28px, opacity 5–6%.ShadowAmbientLight— used for cards and standard UI elements. Blur of 20px, opacity 4%.- Shadow color is always the warm near-black
#1d1c12(theonSurfacetoken), never pure#000000, so the shadow carries a warm tint consistent with the overall palette.
Typography
ComuniTEA uses a curated two-font pairing loaded via@expo-google-fonts, both included as direct dependencies in package.json:
| Role | Font | Rationale |
|---|---|---|
| Display / Headings | Plus Jakarta Sans | Geometric, open counters. “Authoritative yet kind.” Used for large welcoming greetings and milestone screens. |
| Body / Labels | Be Vietnam Pro | Exceptional legibility at small sizes — critical for AAC pictogram labels and instructional text. |
Use
display-lg (equivalent to ~3.5rem) sparingly. Large display text should overlap slightly with surface containers to break the standard boxy layout and create an editorial, layered feel. This intentional asymmetry is a core design principle.Component Guidelines
Buttons
Primary buttons use a gradient fill and extreme rounding to give them physical weight:- Background: Linear gradient from
primary→primaryContainerat 135° - Border radius:
xl(48px / 3rem) - Padding: ~1.5rem × 2.5rem
- Press state: Scale down to
0.98+ increase shadow density to simulate physical depression - Secondary buttons: Use
surfaceContainerHighestfill withprimarytext — no border
AAC Communication Chips
The core interactive element of the app — pictogram buttons on the communication board:- Border radius:
md(24px / 1.5rem), orfull(9999px) for pill-shaped chips - Background:
surfaceContainerLowest(#ffffff) - Icon safe zone: 16px minimum padding around pictograms
- Icon color:
tertiary(#506074) for strokes to maintain Slate Blue softness - Interaction:
surfaceContainerHighon tap for gentle, unambiguous feedback
Cards and Lists
- No divider lines. Never use horizontal rules or
borderBottombetween list items. - Spacing only: Use
md(1.5rem / 24px) orlg(2rem / 32px) vertical spacing to separate items. - Hover/tap state: Transition background to
surfaceContainerHigh(#ebe8da) for clear but gentle feedback.
The Safe Space Drawer
A unique signature component — a bottom-sheet drawer for calming tools and break timers:- Background:
secondaryContainer(#fdc5b5) — a warm, soft rose - Backdrop blur: Heavy (20px), using Glassmorphism:
surfacecolors at ~80% opacity - Border radius:
xl(48px) top corners only - Purpose: Houses calming activities, timers, or sensory break tools. The warm rose color is intentionally distinct from the main surface hierarchy to signal a safe, low-stakes zone.
Theme Switching
The active theme is managed by a Zustand store (appThemeStore) and can be 'sage', 'rojo', or 'azul'. Colors are synchronized to the static Colors export via syncStaticColors():
useThemeColors() (or the reactive palette from the store) rather than importing Colors directly. This ensures your component re-renders when the caregiver switches themes.
Animation Guidelines
All motion in ComuniTEA must feel heavy and organic, never snappy or robotic. This is a sensory consideration: rapid or linear animations can be distressing for children with ASD.- Spring-based transitions only. Use
react-native-reanimated’s spring configurations for all interactive feedback (press, mount, dismiss). - AnimationIntensity control: The app exposes an
AnimationIntensitysetting so caregivers can reduce motion for users with sensory sensitivities. Respect this setting in all animated components. - Scale on press:
0.98(not0.95or lower) — subtle depression, not a dramatic collapse. - Avoid: Linear easing, bounce easing with high overshoot, or any transition under 150ms.