Need help with times-components?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

243 Stars 36 Forks BSD 3-Clause "New" or "Revised" License 3.9K Commits 14 Opened issues


A collection of reusable components used by The Times

Services available


Need anything else?

Contributors list

The Times Component Library

Coverage Status Build Status


Home of The Times'

react native
components, using react-native-web to share across platforms

Dev Environment

We require MacOS with Node.js (for specific version please check package.json restrictions), yarn (latest)

Native development requires Xcode, JDK 8 and pip.

You can try without these requirements, but you'd be on your own.

Viewing Our Components

Go to

Getting Started

  1. Install fontforge:

    brew install fontforge
    (See Fonts section)
  2. Run

    yarn install
  3. Components can be seen running in a storybook:

  • storybook
    1. yarn storybook
    2. go to http://localhost:9001


See utils package on how to update the schema


The components in this project can be debugged through your browser's developer tools. These steps assume the use of Chrome DevTools.

To debug our web Storybook:

  1. yarn storybook
  2. navigate to http://localhost:9001
  3. open DevTools
  4. Click Sources
  5. In the Network tab under the leftmost pane, expand top => storybook-preview-iframe => webpack:// => . => packages

Any of these source files can be debugged directly.

Link times-components to the Render project

Follow these steps here

Debugging the tests

Tests are currently using jest to run so if you want to debug any test follow these steps:


    jest --config="./packages/provider/__tests__/jest.config.js"
    . Depending on what directory we start the tests from, the
    directory may differ. My currenct directory is at the repo root:
  2. See your test command from the

    for the speciffic package you want to check out.

NOTE: If you don't have jest installed globally, you can use it locally from the

  1. (START TESTS IN DEBUG MODE) We need to start the same command but through node while in debug mode like so:
    node --inspect-brk ./node_modules/.bin/jest --config="./packages/provider/__tests__/jest.config.js" --runInBand


is a
flag that runs all tests serially in the current process. If we don't add this flag, only the node process that started
will be debuggable .
  1. (ADD DEBUG STATEMENTS) Normaly we would add breakpoints, but when remote debugging that's not always possible, because the files we need to put the breakpoints on aren't loaded yet by

    . So in order to make the debugger stop where we want it to, we need to add
    statements instead of breakpoints in the code and re-transpile if necessary.
  2. (ATTACH TO WEB SOCKET) Once we've started the tests in debug mode, we need to attach to it:

  • (RECOMMENDED) use chrome remote debug for node:
  1. open
    in chrome address bar
  2. Open dedicated DevTools for Node
  3. If you've started the tests with the aforementioned command it should automatically connect, but if it doesn't go to the
    tab of the pop-up window and add connection
    or whatever your port is
  4. The debugger should stop on the first line because of the
    flag and once you press the play button (resume execution) it should stop on your

NOTE: once it stops you may see all of your code is bundled up in one line. There's an easy fix for that: at the bottom of the debug window near the

Line: 1 Column: 1
labels you should see a
button that will prettify your code and you will still be able to debug properly.
  • (Use VSCode) Config should look close to this:
    "configurations": [
          "localRoot": "${workspaceFolder}/packages/provider", //change this depending on what test you're debugging
          "remoteRoot": "${workspaceFolder}/packages/provider", //change this depending on what test you're debugging
          "type": "node",
          "request": "attach",
          "name": "Attach to Server on 9229",
          "address": "",
          "port": 9229


See the for an extensive breakdown of the project

yarn commit
will commit files (same as
git commit
), and will aid the contributor with adding a suitable commit message inline with conventional changelog

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.