#+TITLE: The offical example rewritten with org/ox-spectacle #+THEME: theme1 #+TEMPLATE: tp1 #+Offical_Example_Url: https://github.com/FormidableLabs/spectacle/tree/main/examples/js * Logo ** ** Spectacle supports notes per slide.
  1. Notes can now be HTML markup!
  2. Lists can make it easier to make points.
* Introduction #+ATTR_HTML: :type Heading :margin 0px :fontSize 150px ✨Spectacle ✨ #+ATTR_HTML: :type Heading :margin 0px :fontSize h2 A ReactJS Presentation Library #+ATTR_HTML: :type Heading :margin 0px 32px :fontSize h3 :color primary Where you can write your decks in JSX, Markdown, or MDX! * Custom Backgrounds :PROPERTIES: :type: SlideWithTitle :props: transition={ts1} backgroundColor="tertiary" backgroundImage="url(https://github.com/FormidableLabs/dogs/blob/main/src/beau.jpg?raw=true)" backgroundOpacity={0.5} :END: - =backgroundColor= - =backgroundImage= - =backgroundOpacity= - =backgroundSize= - =backgroundPosition= - =backgroundRepeat= * Animated Elements :PROPERTIES: :type: SlideWithTitle :END: 1. Elements can animate in! 2. Out of order 3. Just identify the order with the prop =priority= * Box/FlexBox/Grid ** These Text #+ATTR_HTML: :color secondary Items #+ATTR_HTML: :fontWeight bold Flex ** *** #+ATTR_HTML: :color secondary Single-size Grid Item *** #+ATTR_HTML: :color primary Double-size Grid Item ** #+HTML: ${ renderSomeBoxes(9) } #+ATTR_HTML: :type config #+begin_src js // Notice: react-htm syntax const renderSomeBoxes = (n) => Array(n).fill('').map((_, index) => html` <${FlexBox} paddingTop=${0} key=${`formidable-logo-${index}`} flex=${1}> <${Image} src=${formidableLogo} width=${100} /> `); #+end_src * Fragments :PROPERTIES: :layout: top :END: ** Fragment1 This is a slide fragment. ** Fragment2 This is also a slide fragment. #+begin_Appear This item shows up! #+end_Appear #+begin_Appear This item also shows up! #+end_Appear * CodePane #+begin_src jsx -n import { createClient, Provider } from 'urql'; const client = createClient({ url: 'https://0ufyz.sse.codesandbox.io' }); const App = () => ( ); #+end_src #+SPLIT: 1 #+begin_src java public class NoLineNumbers { public static void main(String[] args) { System.out.println("Hello"); } } #+end_src * Slide Embedded in Div? #+ATTR_HTML: :type Heading This is a slide embedded in div. #+ATTR_HTML: :type p :class my-warning This is not implement yet, because i don't understand what this used for. * Markdown Slides Write Slides with markdown? #+ATTR_HTML: :margin 1em 1.5em 5em 1.5em #+begin_src markdown \` # This is a Markdown Slide - You can pass props down to all elements on the slide. - Just use the \`componentProps\` prop. \` #+end_src #+ATTR_HTML: :type p :class my-warning Markdown slides is not supported, I don't think it's necessary. * Grid Layout ** #+ATTR_HTML: :type Heading This is a 4x4 Grid ** #+ATTR_HTML: :textAlign center With all the content aligned and justified center. ** #+ATTR_HTML: :textAlign center It uses Spectacle == and == components. ** * SlideLayout.List :PROPERTIES: :layout: List :props: title="Slide layouts" items={['Two-column', 'Lists' , 'Center', 'And more!']} animateListItems :END: * Logo centered with SlideLayout.Center :PROPERTIES: :layout: Center :END: #+begin_p class="anibox" #+end_p #+ATTR_HTML: :type config #+begin_src css @keyframes beat { to { transform: scale(1.4) } } .anibox { animation: beat .5s infinite alternate; transform-origin: center; } #+end_src * This is a special headline named ==, put your custom code and definitions here. **