Add Flex starter presentation Generated training module for Apache Flex. Content researched from flex.apache.org. Requires human review before publishing.
diff --git a/content/Apache/Flex/metadata.yaml b/content/Apache/Flex/metadata.yaml new file mode 100644 index 0000000..a0f4cb1 --- /dev/null +++ b/content/Apache/Flex/metadata.yaml
@@ -0,0 +1,27 @@ +# 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 Flex" +project_id: flex +description: "Application framework for building expressive web and mobile applications" +tags: + - web + - intro + - developer +duration: "45-60 min" +level: beginner +language: actionscript +slides: 24 +updated: "2026-05-24"
diff --git a/content/Apache/Flex/pom.xml b/content/Apache/Flex/pom.xml new file mode 100644 index 0000000..dc3949a --- /dev/null +++ b/content/Apache/Flex/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-flex</artifactId> + <version>1.0.0-SNAPSHOT</version> + <packaging>war</packaging> + + <name>Training: Content: Apache: Flex</name> + <description>Apache Flex training module - application framework for expressive web applications</description> + +</project>
diff --git a/content/Apache/Flex/src/main/asciidoc/_settings.adoc b/content/Apache/Flex/src/main/asciidoc/_settings.adoc new file mode 100644 index 0000000..9a16917 --- /dev/null +++ b/content/Apache/Flex/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/Flex/src/main/asciidoc/images/project-logo.png b/content/Apache/Flex/src/main/asciidoc/images/project-logo.png new file mode 100644 index 0000000..03eda0e --- /dev/null +++ b/content/Apache/Flex/src/main/asciidoc/images/project-logo.png Binary files differ
diff --git a/content/Apache/Flex/src/main/asciidoc/index.adoc b/content/Apache/Flex/src/main/asciidoc/index.adoc new file mode 100644 index 0000000..9e822c2 --- /dev/null +++ b/content/Apache/Flex/src/main/asciidoc/index.adoc
@@ -0,0 +1,391 @@ +//// + + 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 Flex + +image::project-logo.png[Apache Flex, 500] + +The open-source framework for building expressive web and mobile applications + +[.notes] +-- +Apache Flex is a highly productive, open source application framework for +building and maintaining expressive web applications that deploy consistently +on all major browsers, desktops and devices. It entered the ASF in December +2012, donated by Adobe. +-- + +== What Is Apache Flex? + +* Open-source application framework (Apache License 2.0) +* Builds expressive web, desktop, and mobile applications +* Uses MXML for layout and ActionScript 3 for logic +* Deploys to Adobe Flash Player and Adobe AIR +* Originally created by Macromedia, later donated by Adobe to ASF + +[.notes] +-- +Flex was originally created by Macromedia in 2004, acquired by Adobe, and +donated to the Apache Software Foundation in 2011. It became a top-level +project in December 2012. +-- + +== One Codebase, Deploy Everywhere + +* **Browser** — via Adobe Flash Player +* **Desktop** — via Adobe AIR (Windows, macOS, Linux) +* **Mobile** — iOS, Android (native app stores) +* **TV** — Smart TVs via Broadcom platform + +[.notes] +-- +The key value proposition of Flex is write-once, deploy-everywhere. +A single codebase can target browsers, desktop apps, mobile devices, +and even smart TVs. +-- + +== Important Notice: Flash Player EOL + +* Adobe Flash Player support in browsers ended December 2020 +* All major browsers (Chrome, Firefox, Edge) removed Flash +* For **browser** output → migrate to Apache Royale™ +* Desktop and mobile via Adobe AIR (provided by Harman) **still supported** + +[.notes] +-- +This is critical context. Flash Player in the browser is dead. However, +Flex apps that target AIR for desktop and mobile continue to work. For +browser-targeted development, Apache Royale is the successor project. +-- + +== Apache Royale: The Browser Path Forward + +* Sister project at the ASF: https://royale.apache.org/ +* Allows continued use of ActionScript +* Outputs native JavaScript and HTML +* Designed for developers migrating from Flex browser apps + +[.notes] +-- +Apache Royale grew out of the FlexJS project (originally part of Flex). +It provides a migration path for developers who need browser deployment. +-- + +== The Flex SDK Stack + +* **Apache Flex SDK** — the core framework (current: 4.16.1) +* **Apache FlexJS** — ActionScript to JavaScript compiler (beta) +* **Apache FlexUnit** — unit testing framework +* **BlazeDS** — Java-based remoting and messaging +* **Squiggly** — spell checker library + +[.notes] +-- +The Flex ecosystem includes several sub-projects beyond the core SDK. +Each is available as a separate download from the Apache Flex website. +-- + +== Languages and Technologies + +* **MXML** — XML-based markup for UI layout and component declaration +* **ActionScript 3** — ECMAScript-based language (similar to JavaScript) +* Component-based architecture with data binding +* Skinnable UI components with CSS-like styling + +[.notes] +-- +MXML handles declarative layout while ActionScript handles logic. +ActionScript 3 is strongly typed and class-based, making it familiar +to Java and C# developers. +-- + +== Key Framework Features + +* Rich set of UI components (buttons, forms, data grids, lists) +* Layout containers (HGroup, VGroup, TileGroup, BasicLayout) +* Data binding and event-driven architecture +* Skinning and theming with CSS +* Accessibility support (Section 508 compliance) + +[.notes] +-- +Flex's component library is one of its strongest features — a mature +set of enterprise-grade UI widgets that took years to develop. +-- + + +== Supported IDEs + +* **Adobe Flash Builder** (Eclipse-based) +* **JetBrains IntelliJ IDEA** +* **FlashDevelop** (Windows) +* **FDT** (Eclipse-based) +* Any text editor + command-line compiler + +[.notes] +-- +While you can technically use any text editor, a dedicated IDE provides +code completion, visual design tools, and integrated debugging. +-- + +== Installing the SDK + +1. Download the SDK Installer from https://flex.apache.org/ +2. Run the installer and choose an installation directory +3. Accept the component licenses (Flash Player, AIR, etc.) +4. Wait for all components to download +5. Point your IDE to the new SDK directory + +[.notes] +-- +The SDK Installer handles downloading all required dependencies +including Flash Player, AIR SDK, and third-party libraries. This +greatly simplifies what used to be a manual multi-step process. +-- + +== SDK Dependencies + +* Java SDK 1.7+ (for compilation) +* Apache ANT 1.7.0+ +* Adobe AIR Integration Kit +* Adobe Flash Player Content Debugger +* Open Source Media Framework (OSMF) + +[.notes] +-- +If you use the SDK Installer these are handled automatically. Only +manual source builds need to worry about gathering these individually. +-- + +== Hello World: The Code + +[source,xml] +---- +<?xml version="1.0" encoding="utf-8"?> +<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:s="library://ns.apache.org/flex/spark" + width="640" height="480"> + <s:layout> + <s:BasicLayout /> + </s:layout> + <s:Label text="Hello World!" + horizontalCenter="0" + verticalCenter="0" /> +</s:Application> +---- + +[.notes] +-- +This is a minimal Flex application. The Application tag is the root, +layout defines positioning strategy, and Label is a simple text component. +Note the Spark namespace (library://ns.apache.org/flex/spark). +-- + +== Running Your Application + +1. Create a new Flex project in your IDE +2. Set the SDK to Apache Flex 4.16.1 +3. Replace the generated MXML with Hello World code +4. Click Debug/Run in the toolbar +5. Application launches in your default browser + +[.notes] +-- +The compile-debug cycle is fast. The compiler produces a SWF file that +runs in Flash Player (browser) or can be packaged as an AIR app. +-- + +== Project Structure + +[source,text] +---- +my-flex-app/ +├── src/ +│ └── MyApp.mxml (main application) +├── libs/ (SWC libraries) +├── bin-debug/ (debug output) +├── bin-release/ (release output) +└── build.xml (ANT build, optional) +---- + +[.notes] +-- +A typical Flex project is straightforward. Source goes in src/, compiled +output in bin-debug or bin-release, and any third-party SWC libraries +in libs/. +-- + +== Downloads Available + +* **SDK Installer** — recommended for application developers +* **SDK Source Code** — for SDK contributors +* **SDK Binaries** — pre-compiled (Mac, Linux, Windows) +* **FlexUnit** — unit testing framework +* **Tour De Flex** — component explorer and examples + +[.notes] +-- +The SDK Installer at https://flex.apache.org/ is the recommended path +for most developers. Binaries are available for those who prefer not +to compile. +-- + + + +== Mailing Lists + +* **Users list** — help, discussion, how-to questions +** Subscribe: users-subscribe@flex.apache.org +* **Dev list** — SDK development, features, releases +** Subscribe: dev-subscribe@flex.apache.org +* **Commits list** — automated code change notifications +* **Issues list** — JIRA issue notifications + +[.notes] +-- +The users list is the right place for application developers. The dev +list is for those working on the SDK itself. Archives are available on +Markmail and lists.apache.org. +-- + +== Issue Tracker + +* JIRA: https://issues.apache.org/jira/browse/FLEX +* Bug reports, feature requests, improvements +* Anyone can file issues (requires ASF JIRA account) +* Check existing issues before filing new ones + +[.notes] +-- +JIRA is the official issue tracker for Apache Flex. You'll need to +create an ASF JIRA account to file issues. +-- + +== Source Repositories + +* **flex-sdk** — core SDK framework +* **flex-falcon** — next-generation compiler +* **flex-blazeds** — Java remoting/messaging +* **flex-flexunit** — unit testing +* **flex-utilities** — SDK installer and tools +* 16 repositories total on Apache GitBox + +[.notes] +-- +All source code is available on Apache GitBox and mirrored to GitHub. +The flex-sdk repo is the main framework codebase. +-- + +== Project Governance + +* Apache Software Foundation top-level project (since December 2012) +* PMC with 45 members +* Apache License, Version 2.0 +* Decisions made by consensus on dev@ mailing list +* Meritocratic — contributions earn committer status + +[.notes] +-- +Flex follows standard ASF governance. The PMC oversees releases and +community health. New committers are nominated based on sustained +contributions. +-- + +== How to Contribute + +* Subscribe to dev@flex.apache.org +* Check JIRA for open issues tagged "newbie" or "easy" +* Submit patches via GitHub pull requests +* Improve documentation and examples +* Help other users on the users@ mailing list + +[.notes] +-- +Contributions don't have to be code. Documentation, testing, answering +user questions, and triaging bugs are all valued contributions. +-- + +== Related Projects + +[cols="1,2"] +|=== +| Project | Purpose + +| Apache Royale™ +| ActionScript to JavaScript/HTML (browser output) + +| BlazeDS +| Java remoting and messaging for Flex + +| FlexUnit +| Unit testing framework + +| Tour De Flex +| Interactive component explorer +|=== + +[.notes] +-- +Apache Royale is especially important as the migration path for +browser-targeted Flex applications now that Flash Player is retired. +-- + +== Resources + +* Website: https://flex.apache.org/ +* Getting Started: https://flex.apache.org/doc-getstarted.html +* API Documentation: https://flex.apache.org/asdoc/ +* Wiki: https://cwiki.apache.org/confluence/display/FLEX +* Blog: https://blogs.apache.org/flex/ + +[.notes] +-- +The official website has comprehensive documentation including +API references, video tutorials, and the FlexUnit tutorial. +-- + +== Summary + +* Apache Flex: mature, open-source application framework +* MXML + ActionScript 3 for rich application development +* Desktop and mobile deployment still active via Adobe AIR +* Browser path forward: Apache Royale™ +* Active PMC with 45 members, Apache-governed + +[.notes] +-- +While Flash Player in the browser has ended, Flex remains relevant for +AIR-based desktop and mobile applications. Apache Royale provides the +path forward for browser-targeted development. +-- + +== Questions? + +image::project-logo.png[Apache Flex, 300] + +* https://flex.apache.org/ +* users@flex.apache.org +* dev@flex.apache.org + +[.notes] +-- +Direct audience to the mailing lists for follow-up questions. +The users list is appropriate for application development questions. +--
diff --git a/content/Apache/Flex/src/main/theme/apache.css b/content/Apache/Flex/src/main/theme/apache.css new file mode 100644 index 0000000..d8f2a14 --- /dev/null +++ b/content/Apache/Flex/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%; +}