Add XMLGraphics starter presentation Generated training module for Apache XMLGraphics. Content researched from xmlgraphics.apache.org. Requires human review before publishing.
diff --git a/content/Apache/XMLGraphics/metadata.yaml b/content/Apache/XMLGraphics/metadata.yaml new file mode 100644 index 0000000..d88c2c2 --- /dev/null +++ b/content/Apache/XMLGraphics/metadata.yaml
@@ -0,0 +1,28 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +title: "Apache XML Graphics" +project_id: xmlgraphics +description: "Conversion from XML to graphical output — Batik (SVG), FOP (XSL-FO), and XML Graphics Commons" +tags: + - libraries + - jvm + - intro + - developer +duration: "45-60 min" +level: beginner +language: java +slides: 24 +updated: "2026-05-24"
diff --git a/content/Apache/XMLGraphics/pom.xml b/content/Apache/XMLGraphics/pom.xml new file mode 100644 index 0000000..b8de462 --- /dev/null +++ b/content/Apache/XMLGraphics/pom.xml
@@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.training</groupId> + <artifactId>content-parent-pom</artifactId> + <version>1.5.0-SNAPSHOT</version> + <relativePath>../../../tools/content-parent-pom/pom.xml</relativePath> + </parent> + + <groupId>org.apache.training.content</groupId> + <artifactId>training-content-apache-xmlgraphics</artifactId> + <version>1.0.0-SNAPSHOT</version> + <packaging>war</packaging> + + <name>Training: Content: Apache: XMLGraphics</name> + <description>Training module covering the Apache XML Graphics project (Batik, FOP, and XML Graphics Commons)</description> + +</project>
diff --git a/content/Apache/XMLGraphics/src/main/asciidoc/_settings.adoc b/content/Apache/XMLGraphics/src/main/asciidoc/_settings.adoc new file mode 100644 index 0000000..9a16917 --- /dev/null +++ b/content/Apache/XMLGraphics/src/main/asciidoc/_settings.adoc
@@ -0,0 +1,36 @@ +//// + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +//// + +:goto: +:menu: +:navigation: +:status: +:arrows: +:revealjs_theme: black +:revealjs_progress: true +:revealjs_slidenumber: true +:revealjs_center: false +:revealjs_history: true +:customcss: reveal.js-5.2.1/dist/theme/apache.css +:favicon: https://apache.org/favicon.ico +:icons: font +:imagesdir: images +:sourcedir: ../java +:idprefix: +:idseparator: -
diff --git a/content/Apache/XMLGraphics/src/main/asciidoc/images/project-logo.png b/content/Apache/XMLGraphics/src/main/asciidoc/images/project-logo.png new file mode 100644 index 0000000..d06dd4d --- /dev/null +++ b/content/Apache/XMLGraphics/src/main/asciidoc/images/project-logo.png Binary files differ
diff --git a/content/Apache/XMLGraphics/src/main/asciidoc/index.adoc b/content/Apache/XMLGraphics/src/main/asciidoc/index.adoc new file mode 100644 index 0000000..5b3dce7 --- /dev/null +++ b/content/Apache/XMLGraphics/src/main/asciidoc/index.adoc
@@ -0,0 +1,457 @@ +//// + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +//// + +include::_settings.adoc[] + +== Apache XML Graphics + +image::project-logo.png[Apache XML Graphics, 500] + +Conversion from XML to graphical output + +[.notes] +-- +Welcome to the Apache XML Graphics training module. This project is responsible for +software intended for the creation and maintenance of tools that convert XML to +graphical output. It has been part of the ASF since October 2004. +-- + +== What We'll Cover + +* *Part 1* — What Is Apache XML Graphics? +* *Part 2* — Getting Started +* *Part 3* — Community + +[.notes] +-- +We'll walk through the three sub-projects, how to get started using them, +and how to participate in the community. +-- + +== Project Overview + +* Umbrella project for XML-to-graphics conversion tools +* Three sub-projects under one PMC: +** Apache Batik — SVG toolkit +** Apache FOP — XSL-FO processor +** Apache XML Graphics Commons — shared library +* All written in Java +* Established at the ASF in October 2004 + +[.notes] +-- +Apache XML Graphics is not a single tool but rather an umbrella project +that manages three closely related Java sub-projects, all focused on +converting XML-based formats into graphical or print output. +-- + +== The Charter + +[quote] +____ +Apache XML Graphics exists to promote the use of XML. We view XML as a +compelling paradigm that structures data as information, thereby +facilitating the exchange, transformation, and presentation of knowledge. +____ + +[.notes] +-- +This is from the project's official charter. The key goal is building freely +available products for the conversion of XML to graphical output. +-- + +== Apache Batik — SVG Toolkit + +* Java-based toolkit for Scalable Vector Graphics (SVG) +* Display, generate, and manipulate SVG images in Java +* Core modules: SVG Parser, SVG Generator, SVG DOM, Transcoder API +* Tools: Squiggle SVG browser, Rasterizer (SVG → PNG/JPEG/TIFF) +* Latest release: Batik 1.19 (May 2025) + +[.notes] +-- +Batik is a comprehensive SVG toolkit. It lets developers render SVG in Java +applications, generate SVG from Java2D calls, and manipulate SVG documents +programmatically. Squiggle is a standalone SVG browser, and the rasterizer +converts SVG to PNG/JPEG/TIFF from the command line. +-- + +== Apache FOP — XSL-FO Processor + +* Print formatter driven by XSL formatting objects (XSL-FO) +* Reads an FO tree and renders to output formats +* Primary output target: PDF +* Also supports: PS, PCL, AFP, SVG, XML, Print, AWT, PNG +* Latest release: FOP 2.11 (May 2025) + +[.notes] +-- +FOP — Formatting Objects Processor — is the world's first print formatter +driven by XSL-FO. It takes an XML formatting-object tree and produces +paginated output. PDF is the main target but there are many others. +-- + +== FOP Output Formats + +[cols="2*", options="header"] +|=== +| Format | Description + +| PDF | Portable Document Format +| PS | Adobe PostScript +| PCL | Printer Control Language +| AFP | MO:DCA +| SVG | Scalable Vector Graphics +| PNG | Raster image +| RTF | Rich Text Format (limited) +| TXT | Plain text +|=== + +[.notes] +-- +FOP is remarkably versatile in its output targets. PDF and PostScript +are the most commonly used, but the same XSL-FO input can produce +any of these formats without code changes. +-- + +== Typical FOP Workflow + +[source, text] +---- +XML Data + XSLT Stylesheet → XSL-FO Document + | + v + Apache FOP Processor + | + v + PDF / PS / PCL / ... +---- + +[.notes] +-- +The common pattern: you have XML data, transform it via XSLT into an +XSL-FO document, then feed that to FOP. FOP handles pagination, font +management, and output generation. This separates content from presentation. +-- + +== Apache XML Graphics Commons + +* Shared library used by both Batik and FOP +* Reusable components usable independently +* Key components: +** Image codecs (PNG, TIFF) +** Graphics2D implementations for PS and EPS output +** PostScript helper classes and DSC parser +** XMP metadata framework +** Image loader framework +* Latest release: Commons 2.11 (May 2025) + +[.notes] +-- +XML Graphics Commons is the shared foundation. It extracts reusable pieces +from Batik and FOP into a standalone library. You can use these components +in your own projects without pulling in all of Batik or FOP. +-- + +== How the Sub-Projects Relate + +[source, text] +---- ++----------------+ +----------------+ +| Apache Batik | | Apache FOP | +| (SVG Toolkit) | | (XSL-FO→PDF) | ++-------+--------+ +--------+-------+ + | | + +----------+ +---------+ + v v + +-- Apache XML Graphics Commons --+ +---- + +[.notes] +-- +Both Batik and FOP depend on XML Graphics Commons for shared functionality +like PostScript generation, image loading, and codec support. They can also +interact — for example, FOP uses Batik to handle SVG content in XSL-FO documents. +-- + +== Getting Batik + +* Download from https://xmlgraphics.apache.org/batik/ +* Binary distribution includes all dependencies +* Requires Java Runtime Environment 1.8 or later +* Maven coordinates: +[source, xml] +---- +<dependency> + <groupId>org.apache.xmlgraphics</groupId> + <artifactId>batik-all</artifactId> + <version>1.19</version> +</dependency> +---- + +[.notes] +-- +The binary distribution is self-contained — all dependencies are bundled. +For Maven projects, you can pull in batik-all or individual modules like +batik-transcoder, batik-svg-dom, etc. +-- + +== Getting FOP + +* Download from https://xmlgraphics.apache.org/fop/ +* Binary or source distribution available +* Requires Java 1.8 or later +* Maven coordinates: +[source, xml] +---- +<dependency> + <groupId>org.apache.xmlgraphics</groupId> + <artifactId>fop</artifactId> + <version>2.11</version> +</dependency> +---- + +[.notes] +-- +Like Batik, FOP is available as a binary download or via Maven. The binary +distribution includes command-line scripts for quick use. FOP also has an +Ant task for build-tool integration. +-- + +== FOP Quick Start — Hello World + +1. Unpack the binary distribution +2. Create an XML data file (`name.xml`) +3. Create an XSLT stylesheet that transforms to XSL-FO +4. Run FOP: + +[source, bash] +---- +fop -xml name.xml -xsl name2fo.xsl -pdf name.pdf +---- + +[.notes] +-- +The quickest way to see FOP in action: create a simple XML file, write an +XSLT stylesheet that outputs XSL-FO, then run the fop command. You'll have +a PDF in seconds. The FOP Quick Start Guide on the website walks through +this in detail. +-- + +== Embedding FOP in Java + +[source, java] +---- +FopFactory fopFactory = FopFactory.newInstance( + new File("fop.xconf")); +FOUserAgent foUserAgent = + fopFactory.newFOUserAgent(); +OutputStream out = new FileOutputStream("out.pdf"); +Fop fop = fopFactory.newFop( + MimeConstants.MIME_PDF, foUserAgent, out); +---- + +[.notes] +-- +For programmatic use, you create a FopFactory, configure it, obtain a +FOUserAgent, and create a Fop instance bound to your desired output format. +Then you feed it a SAX stream or FO document via a Transformer. +-- + +== Using Batik — SVG Rasterizer + +[source, bash] +---- +java -jar batik-rasterizer.jar input.svg +---- + +* Converts SVG to PNG by default +* Options for JPEG, TIFF, PDF output +* Batch mode: pass multiple files or a directory + +[.notes] +-- +The Batik rasterizer is a handy command-line tool for converting SVG files +to raster images. It supports customizing output resolution, area, and format. +Great for batch-processing SVG assets in a build pipeline. +-- + +== Using Batik — SVG Generator + +[source, java] +---- +DOMImplementation domImpl = + GenericDOMImplementation.getDOMImplementation(); +Document document = domImpl.createDocument( + SVGConstants.SVG_NAMESPACE_URI, "svg", null); +SVGGraphics2D svgGenerator = + new SVGGraphics2D(document); +// Paint using standard Java2D calls +myComponent.paint(svgGenerator); +---- + +[.notes] +-- +The SVG Generator lets you take any Java2D drawing code and produce SVG +output. You simply instantiate SVGGraphics2D and use it as your Graphics2D +context. Then serialize the resulting DOM to get an SVG file. +-- + +== Source Repositories + +[cols="2*", options="header"] +|=== +| Repository | Content + +| xmlgraphics-batik | Apache Batik source +| xmlgraphics-fop | Apache FOP source +| xmlgraphics-commons | Shared commons library +| xmlgraphics-website | Project website +|=== + +All hosted at https://gitbox.apache.org/repos/asf/ and mirrored on GitHub. + +[.notes] +-- +The source code lives in Git repositories on ASF Gitbox, with read-only +mirrors on GitHub. Contributors can submit patches or pull requests +through either path. +-- + +== Building from Source + +[source, bash] +---- +git clone https://gitbox.apache.org/repos/asf/\ + xmlgraphics-fop.git +cd xmlgraphics-fop +mvn clean install +---- + +* All sub-projects use Apache Maven +* Java 8+ required for building + +[.notes] +-- +Building from source follows standard Maven conventions. Clone the repo, +run mvn clean install, and you're set. Integration tests may require +additional setup — check each sub-project's README. +-- + +== Project Governance + +* Apache Software Foundation Top-Level Project (TLP) +* PMC (Project Management Committee) with 12 members +* Established October 2004 +* Operates on meritocracy — contributions earn responsibility +* Reports to the ASF Board on a quarterly cycle + +[.notes] +-- +XML Graphics is a mature TLP. The PMC currently has 12 members who +oversee releases, community, and project direction. Like all ASF projects, +it follows the Apache Way — open, transparent, and community-driven. +-- + +== Mailing Lists + +* `general@xmlgraphics.apache.org` — cross-project discussions +* `batik-users@xmlgraphics.apache.org` — Batik user questions +* `batik-dev@xmlgraphics.apache.org` — Batik development +* `fop-users@xmlgraphics.apache.org` — FOP user questions +* `fop-dev@xmlgraphics.apache.org` — FOP development + +[.notes] +-- +lists are the primary communication channel. The general list covers +cross-project and XML Graphics Commons topics. Each sub-project has its own +users and dev list. Archives are available via mail-archives.apache.org. +-- + +== Issue Tracking & Contributing + +* Batik: https://issues.apache.org/jira/browse/BATIK +* FOP: https://issues.apache.org/jira/browse/FOP +* Commons: https://issues.apache.org/jira/browse/XGC +* Subscribe to the dev list → find an issue → submit a patch +* Pull requests accepted on GitHub mirrors + +[.notes] +-- +Bug reports and feature requests go through ASF JIRA. The path to +contribution: subscribe to the dev list, find an issue, submit a patch +or pull request via GitHub mirrors. Code review happens on the mailing list. +-- + +== Current Status (May 2025 Releases) + +* Batik 1.19 — bug fix release +* FOP 2.11 — latest stable +* XML Graphics Commons 2.11 — supports FOP 2.11 +* All released on May 6, 2025 + +[.notes] +-- +The project recently released coordinated updates across all three +sub-projects. The Batik release focused on bug fixes, while FOP 2.11 +brings the latest stable feature set for XSL-FO processing. +-- + +== Key Use Cases + +* Generate PDF reports from XML data (FOP) +* Render SVG in Java applications (Batik) +* Convert SVG to raster images in build pipelines (Batik) +* Produce PostScript output from Java2D (Commons) +* Embed SVG graphics in XSL-FO documents (Batik + FOP) + +[.notes] +-- +These are the most common real-world scenarios. Many organizations use FOP +for automated PDF generation from business data. Batik is popular in +diagram editors and visualization tools. The combination of all three +covers the full pipeline from data to print-ready output. +-- + +== Resources + +* Website: https://xmlgraphics.apache.org/ +* Batik: https://xmlgraphics.apache.org/batik/ +* FOP: https://xmlgraphics.apache.org/fop/ +* Commons: https://xmlgraphics.apache.org/commons/ +* Wiki: https://cwiki.apache.org/confluence/display/XMLGRAPHICS + +[.notes] +-- +Here are the key links for further exploration. The website has full +documentation, tutorials, and API references for each sub-project. +The wiki contains community plans and additional how-to guides. +-- + +== Thank You + +image::project-logo.png[Apache XML Graphics, 300] + +https://xmlgraphics.apache.org/ + +[.notes] +-- +Thank you for attending this session on Apache XML Graphics. Please visit +the website, join the mailing lists, and consider contributing! +--
diff --git a/content/Apache/XMLGraphics/src/main/theme/apache.css b/content/Apache/XMLGraphics/src/main/theme/apache.css new file mode 100644 index 0000000..d8f2a14 --- /dev/null +++ b/content/Apache/XMLGraphics/src/main/theme/apache.css
@@ -0,0 +1,457 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + +/********************************************* + * APACHE TRAINING DARK THEME + * White text on black, large fonts for + * conference room visibility. + *********************************************/ + +/********************************************* + * GLOBAL STYLES + *********************************************/ +body { + background-color: #1a1a1a; + background-image: none; +} + +.reveal-viewport { + background-color: #1a1a1a; + color: #f0f0f0; + background-image: none !important; +} + +.reveal { + font-family: "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 32px; + font-weight: normal; + color: #f0f0f0; +} + +/********************************************* + * SLIDE OVERFLOW — allow scrolling if content + * exceeds slide height + *********************************************/ +.reveal .slides section { + height: auto !important; + overflow-y: auto !important; +} + +::selection { + color: #fff; + background: #42affa; + text-shadow: none; +} + +.reveal .slides > section, .reveal .slides > section > section { + line-height: 1.4; + font-weight: inherit; +} + +/********************************************* + * HEADERS — smaller than default + *********************************************/ +.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { + margin: 0 0 20px 0; + color: #ffffff; + font-family: "Segoe UI", Helvetica, Arial, sans-serif; + font-weight: 600; + line-height: 1.2; + letter-spacing: normal; + text-transform: none; + text-shadow: none; + word-wrap: break-word; +} + +.reveal h1 { + font-size: 1.4em; +} + +.reveal h2 { + font-size: 1.0em; +} + +.reveal h3 { + font-size: 0.9em; +} + +.reveal h4 { + font-size: 0.8em; +} + +/********************************************* + * BODY TEXT — large for back-of-room + *********************************************/ +.reveal p { + margin: 20px 0; + line-height: 1.4; + font-size: 1em; +} + +.reveal li { + font-size: 0.95em; + margin-bottom: 0.3em; +} + +/* Ensure certain elements are never larger than the slide itself */ +.reveal img, .reveal video, .reveal iframe { + max-width: 95%; + max-height: 85%; +} + +.reveal strong, .reveal b { + font-weight: bold; + color: #ffffff; +} + +.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 q, .reveal blockquote { + quotes: none; +} + +.reveal blockquote { + display: block; + position: relative; + width: 70%; + margin: 20px auto; + padding: 5px; + font-style: italic; + background: rgba(255, 255, 255, 0.05); + box-shadow: 0 0 2px rgba(255, 255, 255, 0.2); + color: #ccc; +} + +.reveal blockquote p:first-child, .reveal blockquote p:last-child { + display: inline-block; +} + +.reveal q { + font-style: italic; +} + +/********************************************* + * CODE + *********************************************/ +.reveal pre { + display: block; + position: relative; + width: 90%; + margin: 20px auto; + text-align: left; + font-size: 0.55em; + font-family: "Fira Code", "Consolas", monospace; + line-height: 1.3em; + word-wrap: break-word; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.3); +} + +.reveal code { + font-family: "Fira Code", "Consolas", monospace; +} + +.reveal pre code { + display: block; + padding: 10px; + overflow: auto; + max-height: 450px; + word-wrap: normal; + background: #2d2d2d; + color: #e0e0e0; + border-radius: 4px; +} + +/********************************************* + * TABLES + *********************************************/ +.reveal table { + margin: auto; + border-collapse: collapse; + border-spacing: 0; +} + +.reveal table th { + font-weight: bold; + color: #ffffff; +} + +.reveal table th, .reveal table td { + text-align: left; + padding: 0.3em 0.6em; + border-bottom: 1px solid #555; + color: #e0e0e0; +} + +.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 tr:last-child td { + border-bottom: none; +} + +.reveal sup { + vertical-align: super; +} + +.reveal sub { + vertical-align: sub; +} + +.reveal small { + display: inline-block; + font-size: 0.6em; + line-height: 1.2em; + vertical-align: top; +} + +.reveal small * { + vertical-align: top; +} + +/********************************************* + * LINKS + *********************************************/ +.reveal a { + color: #42affa; + text-decoration: none; + -webkit-transition: color 0.15s ease; + -moz-transition: color 0.15s ease; + transition: color 0.15s ease; +} + +.reveal a:hover { + color: #8dcffc; + text-shadow: none; + border: none; +} + +.reveal .roll span:after { + color: #fff; + background: #068ee9; +} + +/********************************************* + * IMAGES + *********************************************/ +.reveal section img { + margin: 15px 0; +} + +.reveal a img { + -webkit-transition: all 0.15s linear; + -moz-transition: all 0.15s linear; + transition: all 0.15s linear; +} + +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #42affa; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); +} + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +.reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { + border-right-color: #42affa; +} + +.reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { + border-left-color: #42affa; +} + +.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { + border-bottom-color: #42affa; +} + +.reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { + border-top-color: #42affa; +} + +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #8dcffc; +} + +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #8dcffc; +} + +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #8dcffc; +} + +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #8dcffc; +} + +/********************************************* + * PROGRESS BAR + *********************************************/ +.reveal .progress { + background: rgba(255, 255, 255, 0.2); +} + +.reveal .progress span { + background: #42affa; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); +} + +/********************************************* + * SLIDE NUMBER + *********************************************/ +.reveal .slide-number { + color: #888; + background-color: rgba(0, 0, 0, 0); +} + +/********************************************* + * GENERAL PURPOSE COLORS + *********************************************/ +.reveal .red { + color: #ff4444; +} + +.reveal .orange { + color: #ffaa44; +} + +.reveal .yellow { + color: #ffff44; +} + +.reveal .green { + color: #44ff44; +} + +/********************************************* + * HIDE THE PERSISTENT HEADER/FOOTER from + * document.html.slim template + *********************************************/ +.header, +.footer { + display: none !important; +} + +/********************************************* + * PROJECT LOGO — small, top left of every slide + * Each module should place a project-logo.png + * in src/main/asciidoc/images/ OR override + * this rule in a local customcss with the + * project's logo URL. + *********************************************/ +.reveal::before { + content: ""; + position: fixed; + top: 16px; + left: 16px; + width: 120px; + height: 36px; + background-image: url("../../../images/project-logo.png"); + background-size: contain; + background-repeat: no-repeat; + opacity: 0.7; + z-index: 100; + pointer-events: none; +} + +/********************************************* + * APACHE OAK LEAF — bottom right of every slide + *********************************************/ +.reveal::after { + content: ""; + position: fixed; + bottom: 16px; + left: 16px; + width: 36px; + height: 36px; + background-image: url("../../../images/logo-apache.png"); + background-size: contain; + background-repeat: no-repeat; + opacity: 0.6; + z-index: 100; + pointer-events: none; +} + +/********************************************* + * C3JS Charts (dark mode) + *********************************************/ +.c3 { + fill: white; +} + +.c3 line, .c3 path { + stroke: white !important; +} + +/********************************************* + * Column layout + *********************************************/ +.reveal .west { + position: fixed; + left: 5%; +} + +.reveal .east { + position: fixed; + right: 5%; +}