@nimbusforwork/nimbus-ui
TypeScript icon, indicating that this package has built-in type declarations

1.0.35 • Public • Published

Nimbus Kiosk

UI components for React Native and React Native Web, built with Typescript Documentation: https://nimbus-ui.netlify.com/

Expo App

Import theme and custom Font

import * as Font from 'expo-font'
import { ThemeProvider } from 'styled-components/native'
import { theme, FontFamily } from '@nimbusforwork/nimbus-ui'
...

const initFont = async () => {
     await Font.loadAsync({
        body_bold: FontFamily.FontInterBold,
        body_base: FontFamily.FontInterRegular,
        body_medium: FontFamily.FontInterMedium
    })
}

render() {
    return (
        <ThemeProvider theme={theme}>
            {!loading && <AppContainer />}
        </ThemeProvider>
    )
}
...

Web App with NextJS

.babelrc

{
  "presets": ["next/babel"],
  "plugins": [["react-native-web", { "commonjs": true }]]
}

app.json

{
  "name": "with-react-native-web",
  "displayName": "with-react-native-web"
}

next.config.js

const path = require('path')

const withTM = require('next-transpile-modules')
const withFonts = require('next-fonts')
const withCSS = require('@zeit/next-css')

const nextConf = {
  env: {
    API_PATH: process.env.API_PATH,
    API_KEY: process.env.API_KEY
  },
  transpileModules: ['react-native', 'styled-components', 'styled-components/native', '@nimbusforwork/nimbus-ui'],
  webpack: config => {
    config.module.rules.push({
      test: /\.ttf$/,
      loader: 'url-loader',
      include: path.resolve(__dirname, 'node_modules/react-native-vector-icons')
    })

    config.module.rules.push({
      test: /\.svg$/,
      use: ['@svgr/webpack']
    })

    return {
      ...config,
      resolve: {
        ...config.resolve,
        extensions: [
          '.web.ts',
          '.web.tsx',
          '.ts',
          '.tsx',
          '.web.js',
          '.web.jsx',
          '.js',
          '.jsx',
          ...config.resolve.extensions
        ],
        alias: {
          ...config.resolve.alias,
          'react-native$': 'react-native-web'
        }
      }
    }
  },
  cssModules: true
}

module.exports = withTM(withFonts(withCSS(nextConf)))

Default fontFamily in nimbus-ui theme

theme.fontFamily = 'body'

fonts type

body_base: Inter-Regular
body_bold: Inter-Bold
body_medium: Inter-Medium

Custom fonts

@font-face {
  font-family: 'body_base';
  src: url('./fonts/Inter-Regular.ttf');
}
@font-face {
  font-family: 'body_bold';
  src: url('./fonts/Inter-Bold.ttf');
}
@font-face {
  font-family: 'body_medium';
  src: url('./fonts/Inter-Medium.ttf');
}

Package Sidebar

Install

npm i @nimbusforwork/nimbus-ui

Weekly Downloads

1

Version

1.0.35

License

MIT

Unpacked Size

6.6 MB

Total Files

34

Last publish

Collaborators

  • kiwicopple
  • chris.nguyen