Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(web-components) - content update for overview docs #19891

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "none",
"comment": "Update content for web component overview docs",
"packageName": "@fluentui/web-components",
"email": "brookdozer@gmail.com",
"dependentChangeType": "none"
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,17 @@ import { Meta } from '@storybook/addon-docs';

<Meta title="Getting Started/Overview" />

## Overview
## The official Fluent UI Web Component library

## What are the Fluent UI Web Components?
Microsoft's [Fluent UI Web Components](https://github.com/microsoft/fluentui/tree/master/packages/web-components) is designed to help you build Fluent web apps using extensible Web Components. The package composes the `@microsoft/fast-foundation` Web Component package and styles it with the [Fluent design language](https://github.com/microsoft/fluentui).
You can use these Web Components flexibly, either from [npm packages](https://www.npmjs.com/package/@fluentui/web-components), from the [CDN](https://unpkg.com/@fluentui/web-components), or you can bring it into your project to customize and extend it. See the [installation page](?path=/docs/getting-started-installation--page) for details.

The Fluent UI Web Components is a library of Web Components that composes `@microsoft/fast-foundation`, styled with design tokens for Microsoft's [Fluent design language](https://github.com/microsoft/fluentui).
It is designed to get you up and running quickly with an extensible set of Web Components for building Fluent UI web applications.

This storybook provides some documentation and an interactive component playground from [Accordion](?path=/docs/components-accordion--accordion) to [TreeView](?path=/docs/components-tree-view--tree-view)
This storybook provides documentation and an interactive component playground from [Accordion](?path=/docs/components-accordion--accordion) to [TreeView](?path=/docs/components-tree-view--tree-view) to help you understand be

- See the **COMPONENTS** _live_ in the side bar.
- See the [installation page](?path=/docs/getting-started-installation--page) for more details
- View the [integration examples](?path=/docs/integrations-introduction--page) - Ember coming soon!
- Check out the [GitHub repo](https://aka.ms/fluentui-web-components) for Web Components, part of the Fluent UI [monorepo](https://github.com/microsoft/fluentui).
- See the [installation page](?path=/docs/getting-started-installation--page) for installation and getting started
- View the [integration examples](?path=/docs/integrations-introduction--page) to leverage the components in your front-end framework
- Check out the [GitHub repo](https://aka.ms/fluentui-web-components) for Web Components, part of the Fluent UI [monorepo](https://github.com/microsoft/fluentui)

### What are Web Components?

Expand All @@ -24,7 +22,7 @@ This storybook provides some documentation and an interactive component playgrou

Fluent UI Web Components is built directly on the W3C Web Component standards, and does not create its own component model. This allows our components to function the same as built-in, native HTML elements. You do not need a framework to use Fluent UI components but you can use them in combination with any framework or library of your choice. See [Integrations](?path=/docs/integrations-introduction--page) for more.

## Joining the community
### Joining the community

Looking to get answers to questions or engage with us in realtime? Our community is most active [on Discord](https://discord.gg/FcSNfg4). Submit requests and issues on [GitHub](https://github.com/Microsoft/fast/issues/new/choose), or join us by contributing on [some good first issues via GitHub](https://github.com/Microsoft/fast/labels/community:good-first-issue).

Expand Down
107 changes: 107 additions & 0 deletions packages/web-components/src/_docs/integrations/ember.stories.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
import { Meta } from '@storybook/addon-docs';

<Meta title="Integrations/Ember" />

Fluent UI Web Components and Ember work great together.

## Setting up the Ember project

First, you'll need to make sure that you have Node.js installed. You can learn more and download that [on the official site](https://nodejs.org/).

With Node.js installed, you can run the following command to install the Ember CLI:

```shell
npm install -g ember-cli
```

With the CLI installed, you have access to the `ember` command-line interface. This can be used to create a new Ember project. For example, to create a new Ember App named "fluent-ember", you would use the following command:

```shell
ember new fluent-ember --lang en
```

When the CLI completes, you should have a basic runnable Ember application.

## Configuring packages

Next, we'll install the Fluent UI Web Component packages, along with supporting libraries. To do that, run this command from your new project folder:

```shell
npm install --save @fluentui/web-components @microsoft/fast-element lodash-es
```

## Using the components

With all the pieces in place, let's run our app in dev mode with `npm start`. The Ember CLI should build your project and make it available on localhost. Right now, it displays a basic welcome message, since we haven't added any code or interesting HTML. Let's change that.

First, open your `app/app.js` file and add the following code:

```ts
import { provideFluentDesignSystem, fluentCard, fluentButton, fluentTextField } from '@fluentui/web-components';

provideFluentDesignSystem().register(fluentCard(), fluentButton(), fluentTextField());
```

This code uses the Fluent Design System to register the `<fluent-card>`, `<fluent-button>`, and `<fluent-text-field>` components. Once you save, the dev server will rebuild and refresh your browser. However, you still won't see anything. Open your `application.hbs` file and replace the `<WelcomePage />` component with the following HTML and then save again.

```html
<h2>Fluent Ember</h2>
<fluent-text-field placeholder="Enter Some Text"></fluent-text-field>
<fluent-button appearance="accent">Click Me</fluent-button>
</fluent-card>
```

Now you should see the Fluent web components displayed in your Ember application.

Next, let's improve this by refactoring it into a component. Stop the CLI and run the following command to scaffold a new Ember component that will be called `fluent-demo`.

```ts
ember generate component fluent-demo
```

Copy your original HTML above and use it to replace the HTML in your `app/components/fluent-demo.hbs` file. Next replace that same HTML in `templates/application.hbs` file with the following Ember component use:

```html
<FluentDemo />
```

Run `npm start` again and you should see the same output, but now we have moved our web components into a `fluentDemo` Ember component.

Let's take it a little further. Create a `fluent-demo.js` file in the same folder as your `fluent-demo.hbs` file and paste the following code:

```js
import Component from '@glimmer/component';
import { action } from '@ember/object';
import { tracked } from '@glimmer/tracking';

export default class FluentDemoComponent extends Component {
@tracked exampleTextField = '';

@action
onClick() {
console.log(this.exampleTextField);
}

@action
onInput(event) {
this.exampleTextField = event.target.value;
}
}
```

Next, update the `fluent-demo.hbs` file with the following HTML:

```html
<fluent-card>
<h2>fluent Ember</h2>
<fluent-text-field placeholder="Enter Some Text"
value="{{this.exampleTextField}}"
{{on "input" this.onInput}}
></fluent-text-field>
<fluent-button appearance="accent" {{on "click" this.onClick}}>Click Me</fluent-button>
</fluent-card>
```

With this code in place, you now have Fluent Web Components fully binding to data and handling user interactions, all from inside an Ember component.

Congratulations! You're now set up to use Fluent and Ember!
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Meta } from '@storybook/addon-docs';

<Meta title="Integrations/Vue" />

Fluent UI Web Component works great with Vue. Let's take a look at how you can set up a Vue project, starting from scratch.
Fluent UI Web Components work great with Vue. Let's take a look at how you can set up a Vue project, starting from scratch.

## Setting up the Vue project

Expand Down
2 changes: 1 addition & 1 deletion packages/web-components/src/combobox/combobox.stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ const ComboboxTemplate = ({ appearance, autocomplete, position, required }) => `
<fluent-option>Yellow Submarine</fluent-option>
<fluent-option>Abbey Road</fluent-option>
<fluent-option>Let It Be</fluent-option>
<fluent-combobox/>
</fluent-combobox>
`;

export const Combobox = ComboboxTemplate.bind({});
Expand Down