See examples/full-spectacle
. It uses almost all features of Spectacle.
examples/extras
aims to showcase features not included in original Spectacle example.
open BsSpectacle;
let theme =
Theme.(
createTheme(
{primary: "#26A0D1", secondary: "white", tertiary: "#505050", quarternary: "white"},
{
primary: {name: "Merriweather", googleFont: true, styles: [|"300"|]},
secondary: {name: "Roboto", googleFont: true, styles: [|"100"|]},
tertiary: simpleFont("monospace")
}
)
);
let s = ReasonReact.stringToElement;
let component = ReasonReact.statelessComponent("Simple");
let make = (_children) => {
...component,
render: (_self) =>
<Deck transition=[|Zoom, Slide|] theme>
<Slide>
<Heading textColor="secondary" textFont="secondary"> (s("Hello, world")) </Heading>
</Slide>
<Slide transition=[|Slide|] bgColor="secondary">
<BlockQuote>
<Quote> (s({js|It’s easy, see...|js})) </Quote>
<Cite> (s("Unknown")) </Cite>
</BlockQuote>
</Slide>
</Deck>
};
open BsSpectacle
let theme =
let open Theme in
createTheme
{
primary = "#26A0D1";
secondary = "white";
tertiary = "#505050";
quarternary = "white"
}
{
primary =
{ name = "Merriweather"; googleFont = true; styles = [|"300"|] };
secondary =
{ name = "Roboto"; googleFont = true; styles = [|"100"|] };
tertiary = (simpleFont "monospace")
}
let s = ReasonReact.stringToElement
let component = ReasonReact.statelessComponent "Simple"
let make _children =
{
component with
render =
(fun _self ->
((Deck.createElement ~transition:[|Zoom;Slide|] ~theme
~children:[((Slide.createElement
~children:[((Heading.createElement
~textColor:"secondary"
~textFont:"secondary"
~children:[s "Hello, world"] ())
[@JSX ])] ())[@JSX ]);
((Slide.createElement ~transition:[|Slide|]
~bgColor:"secondary"
~children:[((BlockQuote.createElement
~children:[((Quote.createElement
~children:[s
{js|It’s easy, see...|js}]
())[@JSX ]);
((Cite.createElement
~children:[s
"Unknown"]
())[@JSX ])] ())
[@JSX ])] ())[@JSX ])] ())[@JSX ]))
}
Easiest way is:
use create-react-app
install this bindings and spectacle
$ npm install --save bs-spectacle spectacle-scripts reason-react
# or
$ yarn add bs-spectacle spectacle-scripts reason-react
add bs-spectacle
to bs-dependencies
in your bsconfig.json
{
...
"bs-dependencies": ["bs-spectacle"]
}
modify package.json
scripts
"scripts": {
"build": "bsb -make-world && react-scripts build",
"start": "bsb -make-world -w",
"clean": "bsb -clean-world",
"test": "echo \"Error: no test specified\" && exit 1"
}
To run it in dev mode, run npm start
in one shell and react-scripts start
in another shell.
Every spectacle
feature is supported.