---
id: fast-foundation.foundationelementdefinition
title: FoundationElementDefinition interface
hide_title: true
---
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[@microsoft/fast-foundation](./fast-foundation.md) &gt; [FoundationElementDefinition](./fast-foundation.foundationelementdefinition.md)

## FoundationElementDefinition interface

An element definition used to define a FoundationElement when registered through the design system registry.

<b>Signature:</b>

```typescript
export interface FoundationElementDefinition 
```

## Properties

|  Property | Type | Description |
|  --- | --- | --- |
|  [attributes](./fast-foundation.foundationelementdefinition.attributes.md) | EagerOrLazyFoundationOption&lt;([AttributeConfiguration](./fast-element.attributeconfiguration.md) \| string)\[\], this&gt; | The custom attributes of the custom element. |
|  [baseClass](./fast-foundation.foundationelementdefinition.baseclass.md) | [Constructable](./fast-element.constructable.md) | The actual FAST base class of the component if different from the class used to compose. |
|  [baseName](./fast-foundation.foundationelementdefinition.basename.md) | string | The non-prefixed name of the component. |
|  [elementOptions](./fast-foundation.foundationelementdefinition.elementoptions.md) | EagerOrLazyFoundationOption&lt;ElementDefinitionOptions, this&gt; | Options controlling how the custom element is defined with the platform. |
|  [shadowOptions](./fast-foundation.foundationelementdefinition.shadowoptions.md) | EagerOrLazyFoundationOption&lt;Partial&lt;ShadowRootInit&gt; \| null, this&gt; | Options controlling the creation of the custom element's shadow DOM. |
|  [styles](./fast-foundation.foundationelementdefinition.styles.md) | EagerOrLazyFoundationOption&lt;[ComposableStyles](./fast-element.composablestyles.md) \| [ComposableStyles](./fast-element.composablestyles.md)<!-- -->\[\], this&gt; | The styles to associate with the custom element. |
|  [template](./fast-foundation.foundationelementdefinition.template.md) | EagerOrLazyFoundationOption&lt;[ElementViewTemplate](./fast-element.elementviewtemplate.md)<!-- -->, this&gt; | The template to render for the custom element. |
