Add ids theme
Change-Id: I1b4a82a3ee14a7499293c639ad22221e4b60f4c3
diff --git a/R/revealjs_presentation.R b/R/revealjs_presentation.R
index 84614ae..881364f 100644
--- a/R/revealjs_presentation.R
+++ b/R/revealjs_presentation.R
@@ -337,6 +337,7 @@
revealjs_themes <- function() {
c(
"default", # not used by reveal
+ "ids",
"simple",
"dark", # our alias for black
"black",
diff --git a/README.Rmd b/README.Rmd
index 6784308..0ecfe20 100644
--- a/README.Rmd
+++ b/README.Rmd
@@ -1,5 +1,5 @@
---
-title: "R Markdown Format for reveal.js Presentations"
+title: "R Markdown Format for reveal.js Presentations – extended by ids theme"
output: github_document
---
diff --git a/README.md b/README.md
index d6d9946..bd524d5 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-R Markdown Format for reveal.js Presentations
+R Markdown Format for reveal.js Presentations – extended by ids theme
================
<!-- badges: start -->
@@ -187,7 +187,7 @@
presentations:
- `theme` specifies the theme to use for the presentation (available
- themes are “simple”, “dark”, “black”, “sky”, “beige”, “serif”,
+ themes are “ids”, “simple”, “dark”, “black”, “sky”, “beige”, “serif”,
“solarized”, “blood”, “moon”, “night”, “league”, or “white”
- `highlight` specifies the syntax highlighting style. Supported styles
diff --git a/examples/ids.Rmd b/examples/ids.Rmd
new file mode 100644
index 0000000..9196688
--- /dev/null
+++ b/examples/ids.Rmd
@@ -0,0 +1,61 @@
+---
+title: "Untitled"
+author: Marc Kupietz
+institute: "IDS Mannheim"
+date: 2024-01-01
+output:
+ revealjs::revealjs_presentation:
+ theme: ids
+ highlight: pygments
+ self_contained: false
+ reveal_plugins:
+ - search
+ - zoom
+ - notes
+ - chalkboard
+ - menu
+ reveal_options:
+ chalkboard:
+ theme: chalkboard
+ toggleNotesButton: true
+ menu:
+ numbers: true
+---
+
+```{r setup, include=FALSE}
+knitr::opts_chunk$set(echo = FALSE)
+```
+
+## R Markdown
+
+This is an R Markdown presentation. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
+
+When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document.
+
+## Slide with Bullets
+### Subheading
+
+- Bullet 1
+- Bullet 2
+- Bullet 3
+
+<aside class="notes">
+Here are some notes.
+</aside>
+
+::: footer
+Custom footer text
+:::
+
+## Slide with R Output
+
+```{r cars, echo = TRUE}
+summary(cars)
+```
+
+## Slide with Plot
+
+```{r pressure}
+plot(pressure)
+```
+
diff --git a/inst/reveal.js-4.6.1/css/theme/source/ids.scss b/inst/reveal.js-4.6.1/css/theme/source/ids.scss
new file mode 100644
index 0000000..b0f0e32
--- /dev/null
+++ b/inst/reveal.js-4.6.1/css/theme/source/ids.scss
@@ -0,0 +1,79 @@
+/**
+ * IDS theme for reveal.js
+ *
+ * By Marc Kupietz
+ */
+
+
+// Default mixins and settings -----------------
+@import "../template/mixins";
+@import "../template/settings";
+// ---------------------------------------------
+
+
+// Include theme-specific fonts
+@import url('https://code.cdn.mozilla.net/fonts/fira.css');
+@import url('https://korap.ids-mannheim.de/font/fira-condensed.css');
+@import url('https://korap.ids-mannheim.de/font/libertinus.css');
+
+$idsOrange: #f6a800;
+
+// Override theme settings (see ../template/settings.scss)
+$backgroundColor: #fff;
+
+$mainColor: #222;
+$headingColor: $idsOrange;
+
+$mainFontSize: 42px;
+$mainFont: 'Libertinus Serif', Helvetica, sans-serif;
+$headingFont: 'Fira Sans Extra Condensed', 'Fira Sans', Helvetica, sans-serif;
+$headingTextShadow: none;
+$headingLetterSpacing: 0.05ex;
+$headingTextTransform: uppercase;
+$headingFontWeight: 600;
+$linkColor: #2a76dd;
+$linkColorHover: lighten( $linkColor, 15% );
+$selectionBackgroundColor: lighten( $linkColor, 25% );
+
+$heading1Size: 2em;
+$heading2Size: 1.35em;
+$heading3Size: 1.1em;
+$heading4Size: 1.0em;
+
+$listBulletColor: $idsOrange;
+
+// Change text colors against dark slide backgrounds
+@include dark-bg-text-color(#fff);
+
+
+// Theme template ------------------------------
+@import "../template/theme";
+// ---------------------------------------------
+
+body {
+ background-image: url('https://corpora.ids-mannheim.de/slides/reveal.js.ids/images/IDS-Logo-2019.svg'),
+ url('https://corpora.ids-mannheim.de/slides/reveal.js.ids/images/orange_bar.png') !important;
+ background-repeat: no-repeat !important;
+ background-position: top 20px right 20px, top 20px left !important;
+ background-size: 25vH auto, 4vH 16vH !important;
+}
+
+// Define additional color effects based on Dracula spec
+// https://spec.draculatheme.com/
+:root {
+ --r-bold-color: #{$idsOrange};
+ --r-list-bullet-color: #{$listBulletColor};
+}
+
+.reveal {
+ strong, b {
+ color: var(--r-bold-color);
+ }
+
+ // Dracula colored list bullets and numbers
+ ul, ol {
+ li::marker {
+ color: var(--r-list-bullet-color) !important;
+ }
+ }
+}
diff --git a/inst/reveal.js-4.6.1/dist/theme/ids.css b/inst/reveal.js-4.6.1/dist/theme/ids.css
new file mode 100644
index 0000000..bb2d057
--- /dev/null
+++ b/inst/reveal.js-4.6.1/dist/theme/ids.css
@@ -0,0 +1,377 @@
+/**
+ * IDS theme for reveal.js
+ *
+ * By Marc Kupietz
+ */
+@import url("https://code.cdn.mozilla.net/fonts/fira.css");
+@import url("https://korap.ids-mannheim.de/font/fira-condensed.css");
+@import url("https://korap.ids-mannheim.de/font/libertinus.css");
+section.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {
+ color: #fff;
+}
+
+/*********************************************
+ * GLOBAL STYLES
+ *********************************************/
+:root {
+ --r-background-color: #fff;
+ --r-main-font: Libertinus Serif, Helvetica, sans-serif;
+ --r-main-font-size: 42px;
+ --r-main-color: #222;
+ --r-block-margin: 20px;
+ --r-heading-margin: 0 0 20px 0;
+ --r-heading-font: Fira Sans Extra Condensed, Fira Sans, Helvetica, sans-serif;
+ --r-heading-color: #f6a800;
+ --r-heading-line-height: 1.2;
+ --r-heading-letter-spacing: 0.05ex;
+ --r-heading-text-transform: uppercase;
+ --r-heading-text-shadow: none;
+ --r-heading-font-weight: 600;
+ --r-heading1-text-shadow: none;
+ --r-heading1-size: 2em;
+ --r-heading2-size: 1.35em;
+ --r-heading3-size: 1.1em;
+ --r-heading4-size: 1em;
+ --r-code-font: monospace;
+ --r-link-color: #2a76dd;
+ --r-link-color-dark: #1a53a1;
+ --r-link-color-hover: #6ca0e8;
+ --r-selection-background-color: #98bdef;
+ --r-selection-color: #fff;
+}
+
+.reveal-viewport {
+ background: #fff;
+ background-color: var(--r-background-color);
+}
+
+.reveal {
+ font-family: var(--r-main-font);
+ font-size: var(--r-main-font-size);
+ font-weight: normal;
+ color: var(--r-main-color);
+}
+
+.reveal ::selection {
+ color: var(--r-selection-color);
+ background: var(--r-selection-background-color);
+ text-shadow: none;
+}
+
+.reveal ::-moz-selection {
+ color: var(--r-selection-color);
+ background: var(--r-selection-background-color);
+ text-shadow: none;
+}
+
+.reveal .slides section,
+.reveal .slides section > section {
+ line-height: 1.3;
+ font-weight: inherit;
+}
+
+/*********************************************
+ * HEADERS
+ *********************************************/
+.reveal h1,
+.reveal h2,
+.reveal h3,
+.reveal h4,
+.reveal h5,
+.reveal h6 {
+ margin: var(--r-heading-margin);
+ color: var(--r-heading-color);
+ font-family: var(--r-heading-font);
+ font-weight: var(--r-heading-font-weight);
+ line-height: var(--r-heading-line-height);
+ letter-spacing: var(--r-heading-letter-spacing);
+ text-transform: var(--r-heading-text-transform);
+ text-shadow: var(--r-heading-text-shadow);
+ word-wrap: break-word;
+}
+
+.reveal h1 {
+ font-size: var(--r-heading1-size);
+}
+
+.reveal h2 {
+ font-size: var(--r-heading2-size);
+}
+
+.reveal h3 {
+ font-size: var(--r-heading3-size);
+}
+
+.reveal h4 {
+ font-size: var(--r-heading4-size);
+}
+
+.reveal h1 {
+ text-shadow: var(--r-heading1-text-shadow);
+}
+
+/*********************************************
+ * OTHER
+ *********************************************/
+.reveal p {
+ margin: var(--r-block-margin) 0;
+ line-height: 1.3;
+}
+
+/* Remove trailing margins after titles */
+.reveal h1:last-child,
+.reveal h2:last-child,
+.reveal h3:last-child,
+.reveal h4:last-child,
+.reveal h5:last-child,
+.reveal h6:last-child {
+ margin-bottom: 0;
+}
+
+/* Ensure certain elements are never larger than the slide itself */
+.reveal img,
+.reveal video,
+.reveal iframe {
+ max-width: 95%;
+ max-height: 95%;
+}
+
+.reveal strong,
+.reveal b {
+ font-weight: bold;
+}
+
+.reveal em {
+ font-style: italic;
+}
+
+.reveal ol,
+.reveal dl,
+.reveal ul {
+ display: inline-block;
+ text-align: left;
+ margin: 0 0 0 1em;
+}
+
+.reveal ol {
+ list-style-type: decimal;
+}
+
+.reveal ul {
+ list-style-type: disc;
+}
+
+.reveal ul ul {
+ list-style-type: square;
+}
+
+.reveal ul ul ul {
+ list-style-type: circle;
+}
+
+.reveal ul ul,
+.reveal ul ol,
+.reveal ol ol,
+.reveal ol ul {
+ display: block;
+ margin-left: 40px;
+}
+
+.reveal dt {
+ font-weight: bold;
+}
+
+.reveal dd {
+ margin-left: 40px;
+}
+
+.reveal blockquote {
+ display: block;
+ position: relative;
+ width: 70%;
+ margin: var(--r-block-margin) auto;
+ padding: 5px;
+ font-style: italic;
+ background: rgba(255, 255, 255, 0.05);
+ box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
+}
+
+.reveal blockquote p:first-child,
+.reveal blockquote p:last-child {
+ display: inline-block;
+}
+
+.reveal q {
+ font-style: italic;
+}
+
+.reveal pre {
+ display: block;
+ position: relative;
+ width: 90%;
+ margin: var(--r-block-margin) auto;
+ text-align: left;
+ font-size: 0.55em;
+ font-family: var(--r-code-font);
+ line-height: 1.2em;
+ word-wrap: break-word;
+ box-shadow: 0px 5px 15px rgba(0, 0, 0, 0.15);
+}
+
+.reveal code {
+ font-family: var(--r-code-font);
+ text-transform: none;
+ tab-size: 2;
+}
+
+.reveal pre code {
+ display: block;
+ padding: 5px;
+ overflow: auto;
+ max-height: 400px;
+ word-wrap: normal;
+}
+
+.reveal .code-wrapper {
+ white-space: normal;
+}
+
+.reveal .code-wrapper code {
+ white-space: pre;
+}
+
+.reveal table {
+ margin: auto;
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+.reveal table th {
+ font-weight: bold;
+}
+
+.reveal table th,
+.reveal table td {
+ text-align: left;
+ padding: 0.2em 0.5em 0.2em 0.5em;
+ border-bottom: 1px solid;
+}
+
+.reveal table th[align=center],
+.reveal table td[align=center] {
+ text-align: center;
+}
+
+.reveal table th[align=right],
+.reveal table td[align=right] {
+ text-align: right;
+}
+
+.reveal table tbody tr:last-child th,
+.reveal table tbody tr:last-child td {
+ border-bottom: none;
+}
+
+.reveal sup {
+ vertical-align: super;
+ font-size: smaller;
+}
+
+.reveal sub {
+ vertical-align: sub;
+ font-size: smaller;
+}
+
+.reveal small {
+ display: inline-block;
+ font-size: 0.6em;
+ line-height: 1.2em;
+ vertical-align: top;
+}
+
+.reveal small * {
+ vertical-align: top;
+}
+
+.reveal img {
+ margin: var(--r-block-margin) 0;
+}
+
+/*********************************************
+ * LINKS
+ *********************************************/
+.reveal a {
+ color: var(--r-link-color);
+ text-decoration: none;
+ transition: color 0.15s ease;
+}
+
+.reveal a:hover {
+ color: var(--r-link-color-hover);
+ text-shadow: none;
+ border: none;
+}
+
+.reveal .roll span:after {
+ color: #fff;
+ background: var(--r-link-color-dark);
+}
+
+/*********************************************
+ * Frame helper
+ *********************************************/
+.reveal .r-frame {
+ border: 4px solid var(--r-main-color);
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
+}
+
+.reveal a .r-frame {
+ transition: all 0.15s linear;
+}
+
+.reveal a:hover .r-frame {
+ border-color: var(--r-link-color);
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
+}
+
+/*********************************************
+ * NAVIGATION CONTROLS
+ *********************************************/
+.reveal .controls {
+ color: var(--r-link-color);
+}
+
+/*********************************************
+ * PROGRESS BAR
+ *********************************************/
+.reveal .progress {
+ background: rgba(0, 0, 0, 0.2);
+ color: var(--r-link-color);
+}
+
+/*********************************************
+ * PRINT BACKGROUND
+ *********************************************/
+@media print {
+ .backgrounds {
+ background-color: var(--r-background-color);
+ }
+}
+body {
+ background-image: url("https://corpora.ids-mannheim.de/slides/reveal.js.ids/images/IDS-Logo-2019.svg"), url("https://corpora.ids-mannheim.de/slides/reveal.js.ids/images/orange_bar.png") !important;
+ background-repeat: no-repeat !important;
+ background-position: top 20px right 20px, top 20px left !important;
+ background-size: 25vH auto, 4vH 16vH !important;
+}
+
+:root {
+ --r-bold-color: #f6a800;
+ --r-list-bullet-color: #f6a800;
+}
+
+.reveal strong, .reveal b {
+ color: var(--r-bold-color);
+}
+.reveal ul li::marker, .reveal ol li::marker {
+ color: var(--r-list-bullet-color) !important;
+}
\ No newline at end of file