This section outlines the elements you can customize within the ID Capture module to match your brand while preserving Incode’s core UX. It clarifies which areas are flexible, such as text, illustrations, and brand colors and which elements remain fixed to ensure consistency, accessibility, and optimal capture performance across platforms.
The Tutorial Screen prepares the user for the ID Capture step. It introduces the action, provides the necessary context, and sets expectations before the camera is activated.
| Area | What can be customized | Notes |
|---|
| Text | Title, subtitle, body text | Fully localizable; tone can be adapted |
| Illustration | Colors or full replacement | Must remain clear and represent a face |
| Brand Colors | Header, highlight elements, button | Uses brand tokens |
| Buttons | Label, color, radius | Must follow platform guidelines |
| Footer | “Verified by Incode” line | Optional but recommended |
| Element | Why it is fixed |
|---|
| Layout structure | Ensures consistency across modules |
| Spacing & safe areas | Required for device compatibility |
| Text hierarchy | Optimized for readability |
| WCAG minimum contrast | Mandatory |
| UI Element | Token | Value |
|---|
| Brand name | brand-500 | #006AFF |
| Title text (“Scan your ID”) | text-body-primary | #262831 |
| Subtitle text (“Ensure your ID is readable”) | text-body-secondary | #60667C |
| Illustration background surface | surface-primary-50 | #E5F0FF |
| ID card accent | surface-brand-500-static | #006AFF |
| Button background (“Let’s scan”) | surface-brand-500-static | #006AFF |
| Button surface | button-primary-surface-default | #006AFF |
| Button text | button-primary-text-default | #FFFFFF |
| Background surface | surface-neutral-0 | #FFFFFF |
| Close icon | icon-neutral-500 | #60667C |
| Footer text (“Verified by Incode”) | text-body-secondary | #60667C |
- Keep copy short to minimize cognitive load.
- The illustration uses brand 50 and brand 500 to reinforce brand identity without overwhelming the UI.
- Ensure tap targets meet accessibility guidelines.
- Maintain clear focus states for keyboard and screen reader users (Web).
The Fake Permission Screen is shown before the operating system displays its native camera permission modal. It prepares the user, explains why camera access is required, and significantly reduces the likelihood of users denying permission. This step increases trust and prevents interruptions during the ID Capture flow.
| Area | What can be customized | Notes |
|---|
| Text | Title, subtitle, permission explanation | Fully localizable; tone should remain reassuring |
| Buttons | Label (“Allow”, “Don’t allow”), color, radius | Must maintain primary/secondary hierarchy |
| Brand Colors | Button accents, icon color, text accents | Uses brand tokens |
| Modal Surface | Background color, elevation, corner radius | Must remain high-contrast and readable |
| Link/Help Text | “Learn more” or similar supportive text | Optional; can adapt tone based on compliance needs |
| Element | Why it is fixed |
|---|
| Background dim opacity | Indicates OS-level permission flow; needed for clarity |
| Modal position | Standardized centered layout for all modules |
| Button hierarchy | Mirrors OS expectations; prevents accidental “Don’t allow” taps |
| Safety text hierarchy | Ensures user comprehension before OS prompt |
| Spacing & safe areas | Required for device consistency |
| WCAG minimum contrast | Mandatory |
| UI Element | Token | Value |
|---|
| Dimmed background | surface-neutral-900-80 | #14151A 80% |
| Modal background | surface-neutral-light | #FFFFFF |
| Title text | text-body-primary | #262831 |
| Subtitle text | text-body-secondary | #60667C |
| Primary button (Allow) | surface-primary-500 | #006AFF |
| Primary button text | button-primary-text-default | #FFFFFF |
| Secondary button | button-secondary-border-default | #006AFF |
| Secondary button text | text-brand-accent | #006AFF |
| Header icons | icon-primary | #60667C |
- The pre-permission modal reduces drop-off by providing context before the OS permission.
- Maintain a clear hierarchy between primary (Allow) and secondary (Don’t allow) actions.
- Keep the dim overlay consistent to align with OS modal expectations.
- Ensure high contrast between modal, text, and background elements.
- Avoid adding extra steps or interaction on this screen.
During capture, the user aligns their ID within the frame, and the system evaluates real-time conditions such as glare, blur, lighting, and edge visibility. When all conditions are met, the photo is taken automatically.
Colors and text on screen can be customized to match your brand, while the capture frame and auto-capture behavior remain fixed to preserve system accuracy.
| Area | What can be customized | Notes |
|---|
| Text | Instruction and helper text (e.g., “Fill the frame with your ID”, “Taking photo…”) | Fully localizable |
| Brand Colors | Countdown, borders, and progress indicators | Controlled via design tokens |
| Background | Dark or neutral surfaces | Must maintain sufficient contrast |
| Iconography | Help and info icons | Color can be customized only |
| Footer | “All photos are encrypted” or “Verified by Incode” line | Optional |
| Element | Why it is fixed |
|---|
| ID frame shape & safe area | Ensures correct edge and glare detection |
| Auto-capture behavior | Guarantees consistency across devices |
| Detection logic | Required for accurate system-level validation |
| Layout & hierarchy | Preserves visual and functional consistency |
| Minimum contrast | Required for accessibility compliance |
| Countdown behavior | Animation and timing remain fixed |
| UI Element | Token | Value |
|---|
| Header text | text-body-invert | #FFFFFF |
| Subtext (“Don’t move your ID…”) | text-body-secondary | #60667C |
| Countdown background | countdown-surface-default | #14151A |
| Countdown text | text-body-invert | #FFFFFF |
| Frame border | border-brand-500 | #006AFF |
| Capture background | surface-neutral-dark | #14151A |
| Info icon | icon-invert | #FCFCFD |
| Footer text (“All photos are encrypted”) | text-body-invert | #FFFFFF |
- The ID frame shape is fixed and cannot be altered, as it ensures correct alignment and document edge detection.
- The progress and countdown indicators must retain their default behavior and timing to maintain capture consistency.
- Apply brand colors subtly—use them for accents like borders or buttons, but avoid overpowering the document preview area.
- Keep instruction text short and direct, guiding users with clear, actionable phrases (e.g., “Fill the frame with your ID”).
- Maintain high contrast and accessible tap areas for key controls such as the help icon or retry button
Manual capture is triggered after a period of inactivity (default: 30 seconds) when automatic detection conditions are not met. In this mode, the user aligns their ID within the capture frame and presses the button manually.
This ensures users can complete verification even in low light, complex backgrounds, or edge-case scenarios where auto-capture cannot trigger.
| Area | What can be customized | Notes |
|---|
| Text | Instructional text (e.g., “Fill the frame with your ID”, “Press the button to capture”) | Fully localizable |
| Button | Color, label, radius, and icon color | Must comply with accessibility and tap-target standards |
| Brand Colors | Border, header, and accent elements | Driven by brand tokens |
| Background | Dark or neutral surfaces | Must maintain sufficient contrast for ID visibility |
| Icons | Help/info icons | Only icon color may be customized |
| Footer | “All photos are encrypted” or “Verified by Incode” | Optional |
| Element | Why it is fixed |
|---|
| ID frame shape and position | Ensures accurate alignment and detection |
| Manual button placement | Ensures reachability and consistency across devices |
| Detection logic fallback | Manual mode always follows auto-mode failure |
| Layout spacing & safe zones | Maintains visual and interaction consistency |
| Accessibility contrast | Must meet WCAG AA requirements |
| Button size & touch area | Required for usability and accessibility compliance |
| UI Element | Token | Value |
|---|
| Frame border | border-neutral-100 | #EBECF1 |
| Instruction text (“Fill the frame with your ID”) | text-body-invert | #FFFFFF |
| Subtext (“Press the button to capture”) | text-body-invert | #FFFFFF |
| Capture button icon | icon-invert | #FCFCFD |
| Capture button background | tooltip-surface-neutral | #262831 |
| Background surface | surface-neutral-dark | #14151A |
| Help icon | icon-invert | #FCFCFD |
| Footer text (“All photos are encrypted”) | text-body-invert | #FFFFFF |
- The ID frame must remain fixed in shape to preserve detection accuracy.
- Manual capture should always appear as a fallback after auto-capture timeout, never as a default.
- Apply brand color accents sparingly (e.g., borders or buttons) to keep focus on the document.
- Keep instructional copy short and directive (e.g., “Fill the frame and tap capture”).
- Maintain clear tap areas and legible text for accessibility on all device size
Once the ID photo is captured — either automatically or manually — the user transitions to the Analyzing and Success screens. These stages reassure users that their ID is being securely processed and confirm when the image has passed all validation checks. Both the progress indicators and confirmation visuals can be adapted to match your brand identity..
| Area | What can be customized | Notes |
|---|
| Text | “Analyzing…”, “Successfully processed!”, “Now let’s capture the back” | Fully localizable |
| Brand Colors | Progress bar, success icon, and action button | Must follow brand tokens |
| Surfaces | Background and card surfaces | Must ensure clarity and contrast against ID image |
| Button | Color, label, and radius (e.g., Scan the back) | Must meet accessibility standards |
| Footer | “All photos are encrypted” or “Verified by Incode” | Optional |
| Animation | Progress fill color transitions | Only color may change; timing and animation curve are fixed |
| Element | Why it is fixed |
|---|
| Progress bar behavior | Maintains consistent feedback rhythm across capture steps |
| Success timing | Ensures users clearly see confirmation before advancing |
| Layout structure | Standardized for readability and predictable UX |
| Minimum contrast | Required for WCAG AA compliance |
| Animation pattern | Fixed to preserve continuity and visual stability across modules |
| UI Element | Token | Value |
|---|
| Header brand | brand 500 | #006AFF |
| Progress bar / Success bar | border-status-positive | #189F60 |
| Border around ID (if shown) | border-status-positive | #189F60 |
| Status text (“Analyzing…”) | text-body-primary | #262831 |
| Success text (“Successfully processed!”) | text-body-primary | #262831 |
| Subtext (“Now let’s capture the back”) | text-body-secondary | #60667C |
| Background | surface-neutral-light | #FFFFFF |
| Footer text (“All photos are encrypted”) | text-body-primary-static | #262831 |
| Success icon (check mark) | positive 600 | #189F60 |
| Button background (“Scan the back”) | surface-brand-500-static | #006AFF |
| Button text | button-primary-text-default | #FFFFFF |
- The progress bar and success icon should use brand-positive tones but remain subtle to avoid visual clutter.
- The ID image always remains centered and visible throughout both stages — never obscured by overlays or text.
- Keep status text brief and affirmative (“Analyzing…”, “Success!”) for faster comprehension.
- Maintain high-contrast text against the background and avoid overlaid color effects on ID photos.
- Button CTAs should appear only on success (e.g., Scan the back or Continue), never during analysis.
Error screens appear when an issue occurs during ID capture, such as glare, blur, cut-off edges, or when all capture attempts have been exhausted. While text and visual styling can be customized, the error event types are system-defined and cannot be removed or altered.
| Area | What can be customized | Notes |
|---|
| Text | Error titles, descriptions, and remaining attempts text | Fully localizable |
| Buttons | CTA label (“Try again”, “Continue”), button color, and radius | Must maintain clear primary/secondary hierarchy |
| Brand Colors | Header, accent colors, and button colors | Should follow brand token system |
| Icons | Warning/error icon color | Only color may change — shapes are fixed |
| Background | Light or neutral backgrounds | Must maintain strong contrast with text and icons |
| Footer | “All photos are encrypted” or “Verified by Incode” | Optional |
| Element | Why it is fixed |
|---|
| Error event types | Linked to detection logic; cannot be reordered or removed |
| Error icon shapes | Maintains universal recognition and visual consistency |
| Error layout structure | Standardized for clarity and predictable behavior |
| “Attempts remaining” logic | Ensures accuracy and reliable retry tracking |
| Final error behavior | Must transition to manual review once attempts are exhausted |
| Accessibility contrast | Must comply with WCAG AA for readability |
| UI Element | Token | Value |
|---|
| Brand header | brand 500 | #006AFF |
| Title text (“Glare present”, “ID scan failed”) | text-body-primary | #262831 |
| Description text | text-body-secondary | #60667C |
| Warning icon | icon-status-negative | #E71111 |
| Border highlight (around ID frame) | border-status-negative | #E71111 |
| Attempts text | text-body-secondary | #60667C |
| Background surface | surface-neutral-0-static | #FFFFFF |
| CTA background | surface-brand-500-static | #006AFF |
| CTA text | button-primary-text-default | #FFFFFF |
| Footer text (“All photos are encrypted”) | text-body-primary | #262831 |
- Error messaging should remain clear, direct, and action-oriented.
- Maintain consistent spacing and visual hierarchy for readability.
- “Try again” should always feel like the primary action when applicable.
- Final error screens should not offer a retry, only a “Continue” action guiding users into manual review logic.
- Avoid long or overly technical messages; users should understand the issue at a glance.
- Include the ID image preview where possible — it helps users understand what went wrong.