---
url: /reference/@cssdoc/core/functions/splitPartArg.md
---
# Function: splitPartArg()

```ts
function splitPartArg(rest): object;
```

Defined in: [packages/core/src/grammar.ts:745](https://github.com/thedannywahl/cssdoc/blob/main/packages/core/src/grammar.ts#L745)

Parse a `@part` argument into its selector, derived name, and optional description.
Handles class (`.foo`), attribute (`[foo="bar"]`), ID (`#foo`), `:host`, `:host-context(…)`,
descendant chains (`A > B > C`), and an optional author alias. For chained selectors the
derived name comes from the final compound.

## Parameters

### rest

`string`

## Returns

`object`

### description?

```ts
optional description?: string;
```

### name

```ts
name: string;
```

### selector

```ts
selector: string;
```

## Examples

```ts
`@part [data-layout="x"] container — Desc` → `{ selector: "[data-layout=\"x\"]", name: "container", description: "Desc" }`
```

```ts
`@part [data-layout="x"] — Desc`            → `{ selector: "[data-layout=\"x\"]", name: "data-layout", description: "Desc" }`
```

```ts
`@part .item — Desc`                         → `{ selector: ".item", name: "item", description: "Desc" }`
```

```ts
`@part A > B > C alias — Desc`               → `{ selector: "A > B > C", name: "alias", description: "Desc" }`
```

```ts
`@part A > B > C — Desc`                     → `{ selector: "A > B > C", name: "<derived from C>", description: "Desc" }`
```
