@accordant/components 中文文档教程

发布于 4年前 浏览 17 更新于 3年前

accordant-components

Setup

git clone git@bitbucket.org:accordant/components.git
cd components
npm i

Run a development site

npm start

然后导航到 http://localhost:8081

Testing and Use-cases

有一个功能可以代表您生成一些简单的用例。

这是基础知识。

Import the loader

./your-component/index.html 中,找到/创建您的模块脚本标签并导入您的组件(和其他依赖组件)并包含它。
然后调用加载器,并将 location.pathname 中的方法作为参数解析。

location.pathname 假设您正在相对地访问您的 index.html 页面。
即:http://localhost:8081/your-component/
这里的绝对路径是行不通的。

import loader from '/scripts/example-loader.js';
loader(location.pathname);

一个基本示例如下所示。

<script type="module">
    import '.'; // your module
    import '../other-comp';
    import loader from '/scripts/example-loader.js';
    loader(location.pathname);
</script>

您也可以对路径进行硬编码,但如果更改组件名称,请记住进行更新。

<script type="module">
    import '.'; // your module
    import '../other-comp';
    import loader from '/scripts/example-loader.js';
    loader('/your-component/');
</script>

Create examples

在组件文件夹中创建一个文件并创建一个新文件,并将其命名为 examples.js

这种格式应该只是一个数组。

export default [] // <ExampleDescription[]>

ExampleDescription

每个项目都应该是一个代表示例的对象。

{
    tag: <String|TemplateLiteral>,
    innerHTML: <String|TemplateLiteral>,
    attributes: <AttributeDescription[]>,
    events: <EventDescription[]>,
    [any]: <any>
}

标签:字符串或模板文字。 这是必需的。
它表示要生成的标签名称。

innerHTML:字符串或模板文字。 这是可选的。
中使用它来描述子内容

light dom attributes:属性描述数组。 这是可选的。
每个属性描述都会向示例组件添加一个具有指定值的属性。

events:一组事件描述。 这是可选的。
每个事件描述都会根据指定的事件名称将事件处理程序绑定到示例组件。

AttributeDescription

{
    name: <String>,
    value: <any>
}

名称:一个字符串。 这是必需的。
属性的名称。

:任何值类型。 这是必需的
应用于组件的值。

EventDescription

{
    name: <String>,
    handler: <Function>
}

名称:事件名称。 这是必需的。
应该绑定的事件名称。

处理程序:一个函数。 这是必需的。
当事件被触发时,如何对事件做出反应。

### 在组件中使用颜色

组件库当前正在观察以下css 变量结构。

ACCORDANT COLOR PALLETTE 尽可能

    --impact-low-color: rgb(84, 201, 248);
    --impact-high-color: rgb(0, 0, 54);
    --clear-audience-color: #fff;

    --primary-brand-color: #0279C8;
    --secondary-brand-color:   #7FC4FD;
    --active-color: #2999FB;
    --tertiary-brand-color: #00335B;
    --background-color: #f1f9ff;

    --button-secondary: #db3907;
    --button-secondary-active: #af2d06;

    --main-text-color: var(--primary-brand-color);
    --secondary-text-color: var(--tertiary-brand-color);
    --light-text-color: #f8f8f8;
    --hero-text-color: #f8f8f8;

使用这些动态变量。

基本一致样式存在于用于本地测试的示例项目中。

如果在受众目录/数字杂志的实例中没有提供变量,请使用一致的十六进制代码作为默认备份值。

您还可以使用下面提供的 Ubank 调色板进行测试,以确保您的颜色是动态的。

注意,对于观众目录影响颜色,它们必须是 RGB - 这样表格就可以计算 & 根据建模数据集插入颜色值。

UBANK 调色板

    --impact-low-color: rgb(139,193,69);
    --impact-high-color: rgb(0,130,40);
    --clear-audience-color: #fff;

    --primary-brand-color: #008228;
    --secondary-brand-color: #8BC145;
    --active-color: #2D2D2D;
    --tertiary-brand-color: #EEECEB;
    --background-color: #EEECEB;

    --button-secondary: #2D2D2D;
    --button-secondary-active: #4C4C4C;

    --main-text-color: var(--primary-brand-color);
    --secondary-text-color: var(--active-color);
    --light-text-color: #f8f8f8;
    --hero-text-color: #f8f8f8;

accordant-components

Setup

git clone git@bitbucket.org:accordant/components.git
cd components
npm i

Run a development site

npm start

Then navigate to http://localhost:8081

Testing and Use-cases

There is a feature for some simple usecase to be generated on your behalf.

Heres the basics.

Import the loader

Inside ./your-component/index.html, find/create your module script tag and import your component (and other dependant ones) and include this.
Then invoke the loader, and parse in the location.pathname to the method as an argument.

The location.pathname assumes that you are visiting your index.html page relatively.
ie: http://localhost:8081/your-component/
An absolute path here would not work.

import loader from '/scripts/example-loader.js';
loader(location.pathname);

A basic example would look like this.

<script type="module">
    import '.'; // your module
    import '../other-comp';
    import loader from '/scripts/example-loader.js';
    loader(location.pathname);
</script>

You can also hardcode your path, but remember to update if you change the component name.

<script type="module">
    import '.'; // your module
    import '../other-comp';
    import loader from '/scripts/example-loader.js';
    loader('/your-component/');
</script>

Create examples

Create a file inside your component folder and create a new file, and name it examples.js

This format should be just an array.

export default [] // <ExampleDescription[]>

ExampleDescription

Each item should be an object that represents an example.

{
    tag: <String|TemplateLiteral>,
    innerHTML: <String|TemplateLiteral>,
    attributes: <AttributeDescription[]>,
    events: <EventDescription[]>,
    [any]: <any>
}

tag: a string or template literal. It is required.
It represents the tag name to be generated.

innerHTML: a string or template literal. It is optional.
Use this to descibe child content, in the light dom

attributes: an array of attribute descriptions. It is optional.
Each attribute descriotion will add an attribute with the specified value to the example component.

events: an array of event descriptions. It is optional.
Each event descriotion will bind an event handler to the example component, based on the specified event name.

AttributeDescription

{
    name: <String>,
    value: <any>
}

name: a string. It is required.
The name of the attribute.

value: any value type. It is required
The value to apply to the component.

EventDescription

{
    name: <String>,
    handler: <Function>
}

name: an event name. It is required.
The event name that should be bound to.

handler: a function. It is required.
How to react to the event, when it is triggered.

### Using color in components

The component library is currently observing the below css variable structure.

ACCORDANT COLOR PALLETTE

    --impact-low-color: rgb(84, 201, 248);
    --impact-high-color: rgb(0, 0, 54);
    --clear-audience-color: #fff;

    --primary-brand-color: #0279C8;
    --secondary-brand-color:   #7FC4FD;
    --active-color: #2999FB;
    --tertiary-brand-color: #00335B;
    --background-color: #f1f9ff;

    --button-secondary: #db3907;
    --button-secondary-active: #af2d06;

    --main-text-color: var(--primary-brand-color);
    --secondary-text-color: var(--tertiary-brand-color);
    --light-text-color: #f8f8f8;
    --hero-text-color: #f8f8f8;

Use these dynamic variables wherever possible.

The base accordant styling is present in the example project for local testing.

Use the accordant hex codes as the default backup values if there are no variables provided in an instance of audience catlog / digital magazine.

You can also test using the Ubank color pallette provided below to ensure that your colors are dynamic.

N.B. for the audience catalog impact colors, they MUST BE RGB - this is so the table can calculate & interpolate color values based on the modelled data set.

UBANK COLOR PALLETTE

    --impact-low-color: rgb(139,193,69);
    --impact-high-color: rgb(0,130,40);
    --clear-audience-color: #fff;

    --primary-brand-color: #008228;
    --secondary-brand-color: #8BC145;
    --active-color: #2D2D2D;
    --tertiary-brand-color: #EEECEB;
    --background-color: #EEECEB;

    --button-secondary: #2D2D2D;
    --button-secondary-active: #4C4C4C;

    --main-text-color: var(--primary-brand-color);
    --secondary-text-color: var(--active-color);
    --light-text-color: #f8f8f8;
    --hero-text-color: #f8f8f8;
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文