All Projects → tmcw → Big

tmcw / Big

Licence: other
presentations for busy messy hackers

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
HTML
75241 projects

Projects that are alternatives of or similar to Big

Godot Power Pitch
International pitch for the Godot Game Engine, made in Godot, available in 15+ languages
Stars: ✭ 348 (-89.15%)
Mutual labels:  slides, presentation, slideshow
s6
S6 Blank - Slideshow templates using HTML 5, CSS 3 'n' JavaScript 2017+ w/ Bespoke.js-compatible "microkernel"
Stars: ✭ 91 (-97.16%)
Mutual labels:  slideshow, presentation, slides
Patat
Terminal-based presentations using Pandoc
Stars: ✭ 1,725 (-46.23%)
Mutual labels:  slides, presentation, slideshow
markdown-slides
Using markdown, write simple but beautiful presentations with math, animations and media.
Stars: ✭ 64 (-98%)
Mutual labels:  slideshow, presentation, slides
Backslide
💦 CLI tool for making HTML presentations with Remark.js using Markdown
Stars: ✭ 679 (-78.83%)
Mutual labels:  slides, presentation, slideshow
Nodeppt
This is probably the best web presentation tool so far!
Stars: ✭ 9,589 (+198.91%)
Mutual labels:  slides, presentation, slideshow
Libreoffice Impress Templates
Freely-licensed LibreOffice Impress templates
Stars: ✭ 238 (-92.58%)
Mutual labels:  slides, presentation, slideshow
slides
Terminal based presentation tool
Stars: ✭ 5,347 (+66.68%)
Mutual labels:  presentation, slides
eloc
1MB cli for authoring / presenting in markdown
Stars: ✭ 52 (-98.38%)
Mutual labels:  presentation, slides
presentador
📽 An opinionated presentation framework. Just write what you want to present and it will do the rest.
Stars: ✭ 25 (-99.22%)
Mutual labels:  presentation, slides
TW-Tamasha
Presentation and slideshow app using web technology based onTiddlywiki
Stars: ✭ 28 (-99.13%)
Mutual labels:  slideshow, presentation
StageMate
StageMate is the smart assistant for your presentation. It will cover all aspects of your pitch from skipping slides to reminding you if you miss some major point.
Stars: ✭ 60 (-98.13%)
Mutual labels:  presentation, slides
elm-slice-show
A simple presentation engine in Elm
Stars: ✭ 59 (-98.16%)
Mutual labels:  slideshow, slides
dekk
👁 A presentation tool written in react.js
Stars: ✭ 33 (-98.97%)
Mutual labels:  presentation, slides
cppcon2015
Repository for the slides and the code of my CppCon 2015 talks.
Stars: ✭ 93 (-97.1%)
Mutual labels:  presentation, slides
Presentation
📑 Presentation helps you to make tutorials, release notes and animated pages.
Stars: ✭ 3,004 (-6.36%)
Mutual labels:  slides, presentation
slipshow
An engine for displaying slips, the next-gen version of slides
Stars: ✭ 17 (-99.47%)
Mutual labels:  slideshow, slides
nicar tworkshop
Slides for #NICAR18 workshop on collecting and analyzing Twitter data
Stars: ✭ 23 (-99.28%)
Mutual labels:  presentation, slides
slides
No description or website provided.
Stars: ✭ 27 (-99.16%)
Mutual labels:  presentation, slides
diorama
A set of React.js components to create easy en extendable presentations.
Stars: ✭ 17 (-99.47%)
Mutual labels:  presentation, slides

Big

Big. The antidote to your presentation procrastination.

A presentation system that works great for creative, hurried people making focused presentations. Stop tweaking fonts and filling slides with text. Big is a configuration-free system that naturally encourages good style.

Features

  • The entire system is about 16kb
  • Slide layouts based on CSS Grid
  • Speakers notes appear in your developer console, which you can put on your other screen
  • Themes are just CSS, and easy to make

Quickstart installation: Glitch

The absolute fastest way to get started is with Glitch. Just click the link below, and you’ll get the freshest version of Big, in a Glitch app that you can edit and publish.

remix this

With Glitch, your presentation will be online and open source by default. You can download it and continue to work on it offline, or if you want to start offline by default and have the files locally, follow the alternative method below 👇

Alternative method: Local installation

If you use NPM, the fastest way to get a copy of Big is this way:

$ npx degit tmcw/big

Preview the presentation locally by double-clicking on index.html. Create a repository with it to share the presentation with Github Pages, or post the files to any other hosting service. You’ll want to eventually use a real server instead of opening the file - to do that, install serve and run it:

$ npm install -g serve
$ serve

Writing a presentation

Big presentations are webpages: slides are div elements, and any text styling or additional elements are addable by using HTML. The text in each div is sized to fit the screen. A slide can be as simple as:

<div>Big</div>

If you want speakers notes - notes that you can see on your laptop screen but aren't shown on the main projector - you can use a <notes> element:

<div>
  Citrus
  <notes>Aren't oranges, lemons, and limes great?</notes>
</div>

Open your developer console, and you'll see your speaker notes in it when you visit that slide! In most browsers, the console is detachable, so you can move it to a different screen or window when you're giving the presentation.

That's all you need to start writing presentations!

Giving presentations

You can advance slides the usual way, by clicking them. You can also use the left & right arrow keys, and the up and down arrow keys. On touch devices, you can navigate forward by tapping and also navigate forward and backwards by swiping.

Big also has three modes if you want to quickly jump to a slide, or print a presentation. You can switch between modes by hitting the t, p, and j keys.

  • talk is the default mode. Slides are shown one at a time.
  • print: is useful for print output or as an overview: it'll include two slides per printed page, and shows speakers notes along with slides
  • jump: Shows many slides per page, useful for quickly finding a slide and 'jumping' to it. When you're in jump mode, you can use the arrow keys to quickly select a slide and hit Enter to jump to that slide, or click the slide you want.

Using Big

Big is designed to be simple, so if you just want to give a Takahashi style presentation with just text, you don't need to read any further! But it can also go far beyond the basics.

Layouts & Images

Let's say you want to add some pictures to a presentation. If you just want the slide to be an image, you can just make it the only thing on the slide:

<div>
  <img src='airplane.gif'/>
</div>

And Big will appropriate size and place the image in the center.

If you want an image and text, you'll need a little more infrastructure: this is where layouts come in. See, the idea of Big is that it sizes text as big as it can be. This has the effect that if you include something else on a slide, like an image, then it'll be squeezed out by ever-expanding text. So if you want to include an image and some text, you'll need to set some ground rules for how much space each is permitted to take up. Luckily, this also lets us do flexible layouts of image and text - you can choose how they're arranged, and they'll gleefully comply.

<div
  class='layout'
  style='grid-template-columns: 1fr;grid-template-rows:75% 25%;'>
  <img src='airplane.gif'/>
  <div>A longer description!</div>
</div>

So you'll see that we have two new attributes for this laid-out slide:

class='layout' triggers a few styles from big.css that give the slide grid layout, make its subsections flexbox, and tweaks how images work. For all slides that use layout, they'll use the layout class.

The second bit - the style attribute, is where the customization comes in. The MDN documentation for grid-template-rows and grid-template-columns is where to start if you want to learn this inside & out, but for those that tend to learn from examples, here are some!

50% / 50% split columns: picture on the left, text on the right

<div class=layout style='grid-template-columns: 50% 50%;'>
  <img src='airplane.gif'/>
  <div>A longer description!</div>
</div>

Grids read from left to right, top to bottom, unless you customize that with extra CSS. You'll need to specify at least grid-template-columns or grid-template-rows to divide up a cell: if you specify columns, it'll be divided horizontally, if rows, vertically.

75% image on the top, 25% text on the bottom

<div class='layout' style='grid-template-rows:75% 25%;'>
  <img src='airplane.gif'/>
  <div>A longer description!</div>
</div>

This slide will be laid out vertically, with the image taking up 75% of the vertical space, text 25%.

Three rows of a 25% image and 75% text

<div
  class=layout
  style='grid-template-columns: 25% 75%;grid-template-rows:repeat(3, 30%);'>
  <img src='airplane.gif'/>
  <div>Yes</div>
  <img src='airplane.gif'/>
  <div>No</div>
  <img src='airplane.gif'/>
  <div>Just right, a lot of text goes here.</div>
</div>

Customizing the aspect ratio

To keep presentations uniform across devices, Big keeps the aspect ratio of presentations constant by default: by default, presentations are 4:3 aspect ratio.

You can customize the aspect ratio by setting a BIG_ASPECT_RATIO variable before Big is included on a page:

<script>BIG_ASPECT_RATIO=2;</script>
<script src='big.js'></script>

You can also turn this feature off, by setting BIG_ASPECT_RATIO to false, which will let presentations occupy the aspect ratio of the device they're displayed on:

<script>BIG_ASPECT_RATIO=false;</script>
<script src='big.js'></script>

Avoiding line breaks

By default, Big will wrap lines of text. Sometimes you don't want this to happen, if you have some text that would look odd wrapped. In this case, you can use the nowrap class to keep some text from wrapping.

<div>
  beyond the <code>for</code> loop
  <br />
  <small class=nowrap>@tmcw / Tom MacWright</small>
</div>

Auto advancing slides

Sometimes you'll give presentations like PechaKucha and Ignite involve auto-advancing slides. You can achieve this by adding a data-time-to-next attributes to slides: this will cause them to auto-advance after a specific number of seconds:

<div data-time-to-next=20>
  My sales pitch in 20 seconds
</div>

Showing code

There are many ways to do code highlighting in presentations. My personal philosophy is that you should never show more than 8 lines of code on a slide, and instead of using traditional semantic highlighting, you should manually add emphasis to focus points in the code.

<div>
    problem one: make some animals rock
    <pre>var animals = <em>['cats', 'dogs']</em>;</pre>
</div>
pre {
  margin:0;
  padding:0.2em;
  background:#fff;
  color:#000;
  font-weight:normal;
}

pre em {
  color:#000;
  background:yellow;
}

But if you want traditional code highlighting, you can include highlight.js to do just that. You'll want to include the library, and use hljs.initHighlightingOnLoad(); like in their usage instructions.

Backgrounds & body classes

You might want to customize the class & style of the body element for a single slide. For example, maybe you want to change the background of the full page. You can do this with two attributes: data-body-style and data-body-class:

<div data-body-style="background-image:url(airplane.gif)">
  <div>Slide will have an airplane background</div>
</div>

Themes

Big presentations are hackable, so you can design yours from scratch, or by customizing one of the default themes, but there are also a few default themes so that you can get going with a solid aesthetic right off the bat.

At the very least, themes are CSS files. You can pick a theme by picking one in the themes directory. Bundled with Big are these themes:

  • dark: near-black background and near-white text, this one is my go-to for most presentations that rely on underpowered projectors.
  • light: like dark, but flipped.
  • white: instead of tastefully off-white and off-black, this theme uses stark, literal black & white colors.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].