Giter Club home page Giter Club logo

talkie's Introduction

Talkie.js - Web Components based Slide library

The master branch is unstable because it makes comprehensive changes with v0.13. For v0.12 code, please refer to the v0.12.x branch.

npm version build status Dependency Status

This library written in TypeScript & ReactiveX/rxjs: A reactive programming library for JavaScript.

For more information about dependency Please look at the package.json.

Feature

  • Markdown support
  • Code highlighting
  • Layout attributes
  • keyboard control
  • touch control
  • Responsive scaling (4:3, 16:9)
  • FullScreen mode
  • Background image & filter
  • Progress indicator
  • Accessibility support
  • Pointer mode (TODO)
  • Canvas drawing mode (experimental) (drop v0.13~)

Real presentation sample

Getting started

Talkie.js contains two of the CSS and one of JavaScript.

  • dist/talkie.min.css
  • dist/talkie.min.js
  • dist/talkie.theme-default.css

Next code is the simplest example.

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="./dist/talkie.css">
<link rel="stylesheet" href="./dist/talkie.theme-default.css">
</head>
<body>

<!-- Pure HTML style -->
<tk-slide layout>
  <h1>Slide 1</h1>
</tk-slide>

<!-- Markdown style ( require `type` attribute ) -->
<tk-slide layout type="text/x-markdown">
# Slide 2
</tk-slide>

<script src="./dist/webcomponents-loader.js"></script>
<script src="./dist/talkie.js"></script>
<script>
window.addEventListener('WebComponentsReady', function(e) {
  document.body.className += ' webcomponents-ready';
  talkie.run();
});
</script>
</body>
</html>

If you use the code highlighting, you must load these files.

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/monokai-sublime.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>

Slide ratio

The default slide is 4:3 (width 1024px, height 768px). If you execute it with the following code, the slide ratio becomes 16:9 (width: 1366px, height 768px).

talkie.run({wide: true});

Scrolling direction

The default scrollable direction is vertical. If you execute it with the following code, the scroll direction becomes horizontal.

talkie.run({horizontal: true});

Backface image & filter

You can add backface attribute into each slides. Image path that you specify in the backface attribute will be the background of when the slide is displayed.

<tk-slide layout
          backface="background-image.jpg"
          backface-filter="blur(1px) brightness(.8)">

  <h1>Title</h1>
  <p>foo, bar, baz, qux...</p>

</tk-slide>

backface-filter attribute is applied to the background image as CSS Filters. But using this, will occur side effect significantly to performance on mobile device.

All options

interface TalkieOptions {
  wide?: boolean; // default: false
  horizontal?: boolean; // default: false
}

talkie.run(options);

FullScreen mode

When you press the f will be a full-screen mode. f or Esc Press and then exit.

Utilities

Many thanks!

Change Log

v0.13

  • TODO

v0.12

  • Add option linkShouldBlank.
  • Add [horizontal] style for default theme.
  • Fixed that transition suppression was not appropriate.
  • Update dependencies.

v0.11

  • Add experimental feature "canvas drawing".
  • Remove Aozora Mincho from default style.

v0.10

  • Improve accessibility support.
  • aria-hidden attribute to use instead of visible,
  • Rename attribute, page to data-page.
  • Rename attribute, body-bg to data-body-bg.
  • Rename attribute, no-transition to data-no-transition.

v0.9

  • Remove the Bacon.js, to use the ReactiveX/rxjs instead.
  • Add TalkieExport.key: (charKey: string) => Observable<KeyboardEvent>.
  • Deprecated TalkieExport.api
  • Deprecated TalkieExport.controls
  • Fixed unexpected transparent background at fullscreen.
  • Default theme some style changes.
    • [invert] has been cut out from the specified value of the layout.
    • Deprecated layouts [title-invert], [bullets-invert]
    • Now it is specified as [layout=title][invert].

License

The MIT License (MIT)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.