User Interface

This interview requires you to write and execute code, building a simple interactive user interface using vanilla JavaScript or React, and styling it with CSS.

35 Questions

Question Number:
Component that visualizes a dataset by rendering bars with lengths proportional to their corresponding values.

Bar Chart

Atlassian

Component that visualizes a dataset by rendering bars with lengths proportional to their corresponding values.

    data visualization
    data fetching
    state management
    component composition
    array methods
    flexbox
    accessibility
    error handling
    sorting
    performance
Question Number:
Component that allows users to rate items by selecting a number of stars out of a maximum value.

Star Widget

HackerRankAmazonAirbnb

Component that allows users to rate items by selecting a number of stars out of a maximum value.

    reusability
    onMouseEnter
    onMouseLeave
    accessibility
    styling
    svg
    Generating elements
Question Number:
Build a Traffic Light with Pure JavaScript: Red, Yellow, Green, and Beyond! 🚦

Traffic Light

SpotifyUber

Build a Traffic Light with Pure JavaScript: Red, Yellow, Green, and Beyond! 🚦

    Styling
    Math.random()
    setInterval()
    clearInterval()
    Math.floor()
    DOM Manipulation
    Transitions
    Cycling
    Modulo Operator
Question Number:
Build a tab component in React with a focus on accessibility and user experience.

Tabs

IntuitAirbnbCodility

Build a tab component in React with a focus on accessibility and user experience.

    HTML
    CSS
    react
    accessibility
    useState
    transition
Question Number:
A component that provides cities suggestions as the user types in an input field.

City Search

AmazonBookingsThoughtspot

A component that provides cities suggestions as the user types in an input field.

    data fetching
    caching
    debouncing
    custom hooks
    state management
    error handling
    input handling
    positioning
    API integration
    performance optimization
Question Number:
Component displays a list of selectable options when clicked and returns the selected value to the parent component.

Select Menu

Component displays a list of selectable options when clicked and returns the selected value to the parent component.

    useRef
    useEffect
    outside click
    event listener
    custom hooks
    cleanup effect
    reusability
    keyboard navigation
    state management
Question Number:
Todo list enables users to seamlessly add, edit, delete tasks, and mark completion for efficient task management.

Todo List

ApolloCodility

Todo list enables users to seamlessly add, edit, delete tasks, and mark completion for efficient task management.

    state management
    useReducer
    context API
    form handling
    event handling
    array methods
    React.memo
    accessibility
    edit and view mode
    checkbox
Question Number:
Application that allows users to perform basic arithmetic operations, such as addition, subtraction, multiplication, and division.

Calculator

MicrosoftLinkedIn

Application that allows users to perform basic arithmetic operations, such as addition, subtraction, multiplication, and division.

    DOM manipulation
    event handling
    error handling
    mathematical operations
    division by zero
    input validation
    CSS Grid
    user input
Question Number:
Interactive Tic Tac Toe game interface, allowing users to play against each other and displaying the winner or a draw.

Tic Tac Toe

ApolloMicrosoftAtlassianGoogle

Interactive Tic Tac Toe game interface, allowing users to play against each other and displaying the winner or a draw.

    state management
    derived state
    component composition
    turn handling
    immutable updates
    array operations
    async handling
    error handling
Question Number:
A transfer list is a UI component for moving items between two lists, often used to manage and organize multiple selections.

Transfer List

MetaTarget

A transfer list is a UI component for moving items between two lists, often used to manage and organize multiple selections.

    immutability
    reusability
    checkbox
    multiple selection
    data structure
    logical
    event handling
Question Number:
Component that displays hierarchical data and allows users to expand or collapse nodes interactively.

Tree Navigation

AtlassianSwiggy

Component that displays hierarchical data and allows users to expand or collapse nodes interactively.

    data fetching
    recursion
    event handling
    CSS transitions
    conditional styling
    CSS transforms
    hover effects
    event propagation
    error handling
    semantic HTML
Question Number:
Vertically stacked set of interactive headings that each reveal an associated section of content.

Accordion

Amazon

Vertically stacked set of interactive headings that each reveal an associated section of content.

    DOM manipulation
    event delegation
    event listeners
    animation
    transitions
    transforms
    accessibility
Question Number:
Nested commenting system that visually distinguishes between comment levels, akin to Reddit or Twitter discussions.

Nested Comments

Reddit

Nested commenting system that visually distinguishes between comment levels, akin to Reddit or Twitter discussions.

    recursion
    conditionals
    state management
    recursively edit
    recursively delete
    styling
    array
    memoization
    event handling
    form handling
Question Number:
Interactive grid where users toggle node colors. Upon activating all nodes, the system automatically reverts them sequentially to their initial state.

Node Unwinder

Uber

Interactive grid where users toggle node colors. Upon activating all nodes, the system automatically reverts them sequentially to their initial state.

    interval
    array manipulation
    state
    grid
    async
    conditional
Question Number:
Component that visually represents the percentage of a task's completion using a progress bar.

Progress Bar

UberGoogleNightfall

Component that visually represents the percentage of a task's completion using a progress bar.

    clamp
    percentage calculation
    transitions
    transform animations
    overflow handling
    component architecture
    reusability
    setTimeout
    cleanup effects
    aria attributes
Question Number:
Component that tracks elapsed time with precision, providing start/stop/reset functionality and lap recording.

Stopwatch

LyftUber

Component that tracks elapsed time with precision, providing start/stop/reset functionality and lap recording.

    setInterval
    useRef
    Date.now()
    useEffect cleanup
    time formatting
    array operations
    event handling
    multiple timers
Question Number:
A Toast system in React shows temporary notifications of various types, allowing users to create and dismiss them individually.

Toast

AdobeOktaRazorpay

A Toast system in React shows temporary notifications of various types, allowing users to create and dismiss them individually.

    dynamic styling
    componet composition
    context API
    keyboard events
    cleanup effects
    form submission
    useKeyDown hook
    provider pattern
Question Number:
Simulates dealing a hand of cards from a standard deck, displaying the drawn cards to the user.

Deal a Hand

Airbnb

Simulates dealing a hand of cards from a standard deck, displaying the drawn cards to the user.

    array manipulation
    fisher yates shuffle
    state management
    conditional styling
    data structures
    event handling
    random selection
    game logic
Question Number:
Component that simulates a basic elevator system.

Elevator System

Lyft

Component that simulates a basic elevator system.

    queue
    timeout
    translate
    async
    scheduling
    state
    effect
Question Number:
Reusable React component that formats a phone number input field in real-time.

Phone Number Input

Stripe

Reusable React component that formats a phone number input field in real-time.

    input validation
    real-time formatting
    regex
    input events
    reusability
    single source of truth
    substring handling
Question Number:
Efficiently process and filter financial transactions based on a provided query.

Transaction Filtering

Stripe

Efficiently process and filter financial transactions based on a provided query.

    search
    reduce
    map
    filter
    conditional rendering
    styling
    CSS variables
    data fetching
    performance optimization
Question Number:
A user interface displaying a list of products with a name-based filter, enhanced by styling and animation.

Filterable Table

A user interface displaying a list of products with a name-based filter, enhanced by styling and animation.

    data filtering
    form controls
    table layout
    conditional rendering
    styling
    component composition
    controlled components
    array methods
Question Number:
Wordle is a five-letter word puzzle with color-coded feedback for each guess, green (correct), yellow (misplaced), and gray (absent).

Wordle

Wordle is a five-letter word puzzle with color-coded feedback for each guess, green (correct), yellow (misplaced), and gray (absent).

    state management
    form handling
    array methods
    game logic
    conditional rendering
    CSS Grid
    CSS variables
    string manipulation
    input validation
    error handling
    range
Question Number:

Coming Soon

Table of Contents

Google

Generate a hierarchical table of contents from a HTML document.

    Question Number:

    Coming Soon

    Virtualized List

    Meta

    React components for efficiently rendering large lists and tabular data

      Question Number:

      Coming Soon

      Overlapping Circles

      Uber

      A dynamic interface where users draw two circles that change color when they intersect, offering real-time visual feedback on overlap.

        Question Number:

        Coming Soon

        Country Capital

        Microsoft

        React game component where players match country names with their corresponding capitals by clicking buttons.

          Question Number:

          Coming Soon

          Fund Account

          A web component for users to input and submit a purchase value with real-time validation and feedback.

            Question Number:

            Coming Soon

            Text Transformer

            The component should accept a configuration prop that determines the type of transformation to apply.

              Question Number:

              Coming Soon

              Drag & Drop

              Snowflake

                Question Number:

                Coming Soon

                Generate Table

                GoogleHotstar

                  Question Number:

                  Coming Soon

                  Image Carousel

                  GoogleAmazon

                    Question Number:

                    Coming Soon

                    Random Color Matrix

                    Flipkart

                    Create a matrix of random colors and more

                      Question Number:

                      Coming Soon

                      Roomba

                      Shopify

                      Beep boop! Program a virtual Roomba in this hands-on coding challenge

                        Question Number:

                        Coming Soon

                        Video Chat Room

                        Vimeo

                        Video chat room using React Hooks, incorporating features such as a lobby, a list of participants, and the chat room itself.