mirror of
https://github.com/noodlapp/noodl-docs.git
synced 2026-01-11 23:02:54 +01:00
Initial commit
Co-Authored-By: kotte <14197736+mrtamagotchi@users.noreply.github.com> Co-Authored-By: mikaeltellhed <2311083+mikaeltellhed@users.noreply.github.com> Co-Authored-By: Tore Knudsen <18231882+torekndsn@users.noreply.github.com> Co-Authored-By: Michael Cartner <32543275+michaelcartner@users.noreply.github.com>
This commit is contained in:
BIN
static/lessons/03_components/lesson-03_01-components.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_01-components.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_02-visual components.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_02-visual components.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_04-select taskpage.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_04-select taskpage.mp4
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_06-delete.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_06-delete.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_07-inserttocomponent.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_07-inserttocomponent.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_08-insertingcards.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_08-insertingcards.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_09-cardmargin.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_09-cardmargin.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_10-componentinput.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_10-componentinput.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_11-creating inputs.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_11-creating inputs.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_12-bgcolor.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_12-bgcolor.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_12-category.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_12-category.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_12-image.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_12-image.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_12-title.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_12-title.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_13-date.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_13-date.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_14-overwrite.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_14-overwrite.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_15-study.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_15-study.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_16-shopping.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_16-shopping.mp4
Normal file
Binary file not shown.
BIN
static/lessons/03_components/lesson-03_17-changebgcolor.mp4
Normal file
BIN
static/lessons/03_components/lesson-03_17-changebgcolor.mp4
Normal file
Binary file not shown.
768
static/lessons/03_components/lesson.html
Normal file
768
static/lessons/03_components/lesson.html
Normal file
@@ -0,0 +1,768 @@
|
||||
<!-- A step with just a popup -->
|
||||
<div data-template="popup">
|
||||
<video src="lesson-03_08-insertingcards.mp4"></video>
|
||||
<h2>Welcome back!</h2>
|
||||
<p>
|
||||
This third lesson will be all about components, and why they might be the most powerful tool in you Noodl toolbox.
|
||||
</p>
|
||||
<p>
|
||||
In the last lesson you created a nice card item, let's see how we can make it into a reusable Component.
|
||||
</p>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- Ask user to look at the static data -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header> </header>
|
||||
<h2>Components</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_01-components.mp4"></video>
|
||||
<h2>Components</h2>
|
||||
<p>
|
||||
Components are used to break your project into smaller building blocks.
|
||||
This pattern has two main benefits:
|
||||
</p>
|
||||
<p>
|
||||
1) They can be reused across your app, so you don't have to rebuild the
|
||||
same UI or logic in multiple places. This is important when we want
|
||||
to make our app data driven.
|
||||
</p>
|
||||
<p>
|
||||
2) It's a good way to keep your project organized, so you don't end up
|
||||
with huge, complex node graphs.
|
||||
</p>
|
||||
<p>
|
||||
In the Component Panel in the Sidebar you get an overview of all the components in the project,
|
||||
and from here you can also create new ones.
|
||||
</p>
|
||||
<p>
|
||||
Noodl has four types: <strong>visual</strong>, <strong>logic</strong>, <strong>page</strong> and <strong>cloud function</strong>
|
||||
components. You will be using visual components in this lesson.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header> </header>
|
||||
<h2>Lesson tasks</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>.lesson-item-popup {width: 600px !important;}</style>
|
||||
<image src="../01_task.png"></image>
|
||||
<h2>Time to get your hands dirty!</h2>
|
||||
<p>During this lesson, you will be given multiple tasks. Spot them in the lesson timeline by the <i>Task</i> label.</p>
|
||||
<p>If you get stuck you can get a hint by clicking the card in the timeline.</p>
|
||||
<p>Some of the nodes graphs will already be set up for you beforehand. This is to keep the lessons short so that you can focus on learning one concept at a time. If it feels like magic at times, don't worry. It's just a concept you will learn in a later lesson.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- Ask user to look at the static data -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header> </header>
|
||||
<h2>Visual components</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_02-visual components.mp4"></video>
|
||||
<h2>Visual components</h2>
|
||||
<p>
|
||||
You can turn a set of visual nodes (like our <i>Card Item</i>) into a visual
|
||||
component to make it reusable. Your task app will include multiple tasks
|
||||
with a <i>Card Item</i> each, so it's a perfect case to turn into a component.
|
||||
</p>
|
||||
<p>
|
||||
Creating a new visual component is done by <strong>clicking</strong> the <i>plus</i> icon in the
|
||||
<i>Component</i> section of the Component Panel.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. It has tasks, so popup will only be shown when user clicks the item -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"viewerpatheq":"/task-page"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 280px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>Select the <strong><i>/task-page</i></strong> path in the <strong>Path Dropdown</strong></h3>
|
||||
</div>
|
||||
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_04-select taskpage.mp4"></video>
|
||||
<p>
|
||||
In this lesson we will be working on the page called <i>Task Page</i> so select
|
||||
that in the Path Dropdown.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. It has tasks, so popup will only be shown when user clicks the item -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Card Item",
|
||||
"exists":true
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 250px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
Create a new visual component called <strong><i>Card Item</i></strong>
|
||||
</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_05-createvisualcomponent.mp4"></video>
|
||||
<p>
|
||||
Create a new visual component by <strong>clicking</strong> the <i>plus</i> icon in the component panel and name it <i>Card Item</i>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header> </header>
|
||||
<h2>New components</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_05-v2 createvisualcomponent.mp4"></video>
|
||||
<h2>New Components</h2>
|
||||
<p>
|
||||
When creating a new visual component it contains a single <strong>Group</strong> node by
|
||||
default.
|
||||
</p>
|
||||
<p>
|
||||
Components can only have one visual hierarchy, so you need to delete the
|
||||
default <strong>Group</strong> before pasting in the card related nodes from the <i>Task Page</i>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. It has tasks, so popup will only be shown when user clicks the item -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Card Item:%Group",
|
||||
"exists":false
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 250px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>Delete the default <strong>Group</strong> node in the new component</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_06-delete.mp4"></video>
|
||||
<p>
|
||||
A component can only have one visual hierarchy, so you will need to delete
|
||||
the default Group node if you want to copy and paste from another node
|
||||
graph.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. It has tasks, so popup will only be shown when user clicks the item -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Card Item:#Card Item",
|
||||
"exists":true
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 540px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
Open the <i>Task Page</i> node graph and <strong>cut</strong> the <strong>Card Item</strong> Group node. Then <strong>paste</strong> it into your newly created <strong>Card Item</strong> component
|
||||
</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_07-inserttocomponent.mp4"></video>
|
||||
<p>Select the <i>Card Item</i> Group node. Cut with <strong>Ctrl/Cmd + X</strong>. Paste with <strong>Ctrl/Cmd + V</strong>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header> </header>
|
||||
<h2>Using components</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_08-insertingcards.mp4"></video>
|
||||
<h2>Using Components</h2>
|
||||
<p>
|
||||
Placing an instance of a component into the node graph is as easy as
|
||||
dragging the component from the <strong>Component Panel</strong> into the node graph of the
|
||||
component or page we want it to be in.
|
||||
</p>
|
||||
|
||||
<p>You can also find all your components in the <strong>Node Picker</strong>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:#Card Item",
|
||||
"exists":true
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 450px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
Go to the <i>Task Page</i> node graph and insert the new <strong>Card Item</strong> component as a child to
|
||||
the <strong>Content Container</strong> Group
|
||||
</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_08-insertingcards.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:0",
|
||||
"exists":true
|
||||
},
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:1",
|
||||
"exists":true
|
||||
},
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:2",
|
||||
"exists":true
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 300px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
Repeat the previous task, so you have 3 <strong>Card Item</strong> components in total
|
||||
</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_08-insertingcards.mp4"></video>
|
||||
<p>Copy with <strong>Cmd/Ctrl + C</strong> and paste with <strong>Cmd/Ctrl + V</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Card Item:%Group",
|
||||
"paramseq": {
|
||||
"marginBottom": { "value": 16, "unit": "px" }
|
||||
}
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 360px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
In the <strong>Card Item</strong> component, set the <strong>bottom margin</strong> of the <strong>Card Item</strong> Group to <i><strong>16px</strong></i>
|
||||
</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_09-cardmargin.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header> </header>
|
||||
<h2>Component Inputs</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_10-componentinput.mp4"></video>
|
||||
<h2>Component Inputs</h2>
|
||||
<p>
|
||||
When you changed the bottom margin on the <i>Card Item</i> component that change
|
||||
applied to all instances of <i>Card Item</i> across your app. This is great for reusability
|
||||
purposes. However, sometimes we want certain properties to be unique for each specific
|
||||
instance, like the displayed text, the image and the background color in our case.
|
||||
</p>
|
||||
<p>
|
||||
You can achieve this by using the <strong>Component Input</strong> node. This node allows
|
||||
you to create <strong>ports</strong> on the component. The <strong>ports</strong> can be connected to the input
|
||||
properties that you want to overwrite.
|
||||
</p>
|
||||
<p>
|
||||
This allows you to create your own Property Panels for your components: When a <strong>Component Input</strong> port is connected it will show up as an <strong>input property</strong> on the <i>Card Item</i> component node. It will allow you to overwrite the components default values.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Card Item:%Component Inputs",
|
||||
"exists":true
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 300px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>Create a <strong>Component Inputs</strong> node inside the <strong>Card Item</strong> node graph</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_11-creating inputs.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Card Item:%Component Inputs",
|
||||
"hasport": "Image",
|
||||
"hasport": "Background Color",
|
||||
"hasport": "Title",
|
||||
"hasport": "Category",
|
||||
"hasport": "Date"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 400px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
Add the following five ports to the Component Inputs:
|
||||
<strong><i>Image</i></strong>,
|
||||
<strong><i>Background Color</i></strong>,
|
||||
<strong><i>Title</i></strong>,
|
||||
<strong><i>Category</i></strong>,
|
||||
<strong><i>Date</i></strong>
|
||||
</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_11-creating inputs.mp4"></video>
|
||||
<p>Remember that port names are case sensitive</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"from": "/Card Item:%Component Inputs",
|
||||
"to": "/Card Item:#Card Item",
|
||||
"hasconnection": "Background Color,backgroundColor"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 500px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
|
||||
<h3>Connect the <strong>Component Inputs</strong> node to the <strong>Card Item</strong> Group node and send the <strong><i>background color</i></strong> output to the <strong><i>background color</i></strong> input</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_12-bgcolor.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"from": "/Card Item:%Component Inputs",
|
||||
"to": "/Card Item:#Card Item:%Image",
|
||||
"hasconnection": "Image,src"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 400px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
|
||||
<h3>Connect the <strong>Component Inputs</strong> node to the <strong>Image</strong> node and send the <strong><i>image</i></strong> output to the <strong><i>source</i></strong> input</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_12-image.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"from": "/Card Item:%Component Inputs",
|
||||
"to": "/Card Item:%Group:%Group:0",
|
||||
"hasconnection": "Title,text"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 400px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
|
||||
<h3>Connect the <strong>Component Inputs</strong> node to the <strong>Card Title</strong> Text node and send the <strong><i>title</i></strong> output to the <strong><i>text</i></strong> input</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_12-title.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"from": "/Card Item:%Component Inputs",
|
||||
"to": "/Card Item:%Group:%Group:1",
|
||||
"hasconnection": "Category,text"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 460px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
|
||||
<h3>Connect the <strong>Component Inputs</strong> node to the <strong>Category</strong> Text node and send the <strong><i>category</i></strong> output to the <strong><i>text</i></strong> input</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_12-category.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"from": "/Card Item:%Component Inputs",
|
||||
"to": "/Card Item:%Group:%Group:2",
|
||||
"hasconnection": "Date,text"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 400px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
|
||||
<h3>Connect the <strong>Component Inputs</strong> node to the <strong>Date</strong> Text node and send the <strong><i>date</i></strong> output to the <strong><i>text</i></strong> input</h3>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_13-date.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header> </header>
|
||||
<h2>Overwriting component inputs</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_14-overwrite.mp4"></video>
|
||||
<h2>Overwriting Component inputs</h2>
|
||||
<p>
|
||||
All the ports created in the <strong>Component Inputs</strong> node are now exposed on the
|
||||
component wherever it is used.
|
||||
</p>
|
||||
<p>
|
||||
This means that you can style each instance of the component individually
|
||||
without those changes being applied across the whole app.
|
||||
</p>
|
||||
<p>You can add more ports at any time to control more properties.</p>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. It has tasks, so popup will only be shown when user clicks the item -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:1",
|
||||
"paramseq": {
|
||||
"Image": "study.png"
|
||||
}
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 420px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
Go to the <i>Task Page</i> node graph and change the <strong>image</strong> on the second <strong>Card Item </strong>component
|
||||
to <i><strong>study.png</strong></i>
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_15-study.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. It has tasks, so popup will only be shown when user clicks the item -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:2",
|
||||
"paramseq": {
|
||||
"Image": "shopping.png"
|
||||
}
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 340px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>
|
||||
On the third <i>Card Item</i> component, change the <strong>image</strong> to <i><strong>shopping.png</strong></i>
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_16-shopping.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. It has tasks, so popup will only be shown when user clicks the item -->
|
||||
<div
|
||||
data-conditions='[
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:1",
|
||||
"hasparams": "Background Color"
|
||||
},
|
||||
{
|
||||
"path":"/Task Page:%Page:%Group:#Content Container:2",
|
||||
"hasparams": "Background Color"
|
||||
}
|
||||
]'
|
||||
>
|
||||
<div data-template="item" style="width: 300px">
|
||||
<header>
|
||||
Task
|
||||
<span class="lesson-checkmark"></span>
|
||||
</header>
|
||||
<h3>Change the <strong>background color</strong> of the cards to any colors of your liking</h3>
|
||||
</div>
|
||||
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<video src="lesson-03_17-changebgcolor.mp4"></video>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
|
||||
<!-- A step with an item in the bottom bar. No tasks, so popup will be shown automatically -->
|
||||
<div>
|
||||
<div data-template="item">
|
||||
<header>Outro</header>
|
||||
<h2>Congratulations!</h2>
|
||||
</div>
|
||||
<div data-template="popup">
|
||||
<style>
|
||||
.lesson-item-popup {
|
||||
width: 600px !important;
|
||||
}
|
||||
</style>
|
||||
<!--<img src="tutorial_card.png" style="cursor: pointer;" onclick="window.open('https://www.youtube.com/watch?v=TNnn0Gzj-H4&list=PL2eC2vS4uVoMbujQ5CiNtNuP7s7-UwNn-')"> -->
|
||||
<h2>Congratulations!</h2>
|
||||
<p>You've completed this tutorial, we hope you got the gist of it!</p>
|
||||
<p>
|
||||
Feel free to continue change the different input properties to customize
|
||||
the cards even more. e.g with new paddings or borders.
|
||||
</p>
|
||||
<p>
|
||||
In the next tutorial you will learn how to generate this list of cards with
|
||||
a data driven approach.
|
||||
</p>
|
||||
<p>Happy Noodling!</p>
|
||||
<!--<button style="width: 150px" onclick="window.open('https://www.youtube.com/watch?v=TNnn0Gzj-H4&list=PL2eC2vS4uVoMbujQ5CiNtNuP7s7-UwNn-')">WATCH TUTORIAL</button>-->
|
||||
<button style="width: 150px" data-click="exitEditor">EXIT LESSON</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- # -->
|
||||
BIN
static/lessons/03_components/project.zip
Normal file
BIN
static/lessons/03_components/project.zip
Normal file
Binary file not shown.
Reference in New Issue
Block a user