Public
Edited
Mar 7, 2023
Insert cell
Insert cell
Insert cell
import { render, jsx, component, useState, useCallback, useMemo } from "@j-f1/react"
Insert cell
render(() => jsx`<strong>Hello, React!</strong>`)
Insert cell
Insert cell
Insert cell
render(({ getValue }) => {
return jsx`<p>${timestep}</p>`
})
Insert cell
viewof timestep = Inputs.range([2005, 2095], {step: 30, value: 2095})
Insert cell
Insert cell
Insert cell
render(() => {
return jsx`<${Timestep} title="Time step:" />`
})
Insert cell
Timestep = component(
({ title }) => jsx`
<p>
<strong>${title}</strong>${' '}
${timestep}
<br />
</p>
`
)
Insert cell
Insert cell
Insert cell
viewof text = render(({ useSetter }) => {
const [value, setValue] = useState("Hello, Observable")
useSetter(value)
return jsx`<input
type="text"
placeholder="Enter some text..."
value=${value}
onChange=${useCallback(event => setValue(event.target.value), [setValue])}
/>`
})
Insert cell
Insert cell
Insert cell
render(() => {
return jsx`<${StackedBars} species="Quercus_ilex" region="ITA" />`
})
Insert cell
render(() => {
return jsx`<${StackedBars} species="Quercus_ilex" region="FRA" />`
})
Insert cell
Insert cell
stats = FileAttachment("stats.json").json()
Insert cell
TIME_STEPS = [2005, 2035, 2065, 2095]
Insert cell
CATEGORIES = ['decolonized', 'stable', 'suitable']
Insert cell
COLORS = ['#c87474', '#89dc6a', '#cdf872']
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more