Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/firebaseextended/remote-styles

Conditionally load CSS from Firebase Remote Config
https://github.com/firebaseextended/remote-styles

css firebase firebase-remote-config

Last synced: about 2 months ago
JSON representation

Conditionally load CSS from Firebase Remote Config

Awesome Lists containing this project

README

        

# remote-styles

> Conditionally load CSS from Firebase Remote Config

### Status: Alpha

## Install
```bash
npm i remote-styles firebase
# OR
yarn add remote-styles firebase
```

## Basic Example

Webpack/Module Bundler usage

```ts
import { initialize } from 'remote-styles';

async function importStyles() {
// Be smart and lazy load. Dynamic styles
// are not likely needed for page load.
const firebase = await import('firebase/app');
await import('firebase/analytics');
await import('firebase/remote-config');

const firebaseApp = firebase.initializeApp({
/* config */
});
const getStyles = await initialize(firebaseApp);
const styles = getStyles('dark_mode');
styles.insert();
}

importStyles();
```

## Script Tags / Loader Version

`remote-styles` has a sub-package that lazy loads Firebase. This is useful for sites that use script tags instad of module bundling.

```html

This can be configured remotely!



(async function(window, remoteStyles) {
const getStyles = await remoteStyles.initialize({
/* config */
});
const styles = getStyles('dark_mode');
styles.insert();
}(window, window.remoteStyles));

```

## Upload/Download CSS from Remote Config via the CLI

To use the CLI you'll need to download a Service Account from the Firebase Console.

### Downloading CSS

Downloading CSS currently works only with default parameters.

```bash
node_modules/.bin/remote-styles get --key="CSS" --sa="./sa.json" --out="styles.css"
```

### Uploading CSS

Uploading CSS currently works only with default parameters.

```bash
node_modules/.bin/remote-styles put --key="CSS" --sa="./sa.json" styles.css
```