Interface: TextBaseProps
Extended by
Properties
align?
optionalalign?:HAlign
Horizontal alignment
When a shape's text is an array of runs, set this on every run of a paragraph. breakLine is not the only paragraph boundary: two adjacent runs whose align differs start a new one, so stating it on the opening run alone splits the paragraph in two. That is the mirror of bullet, paraMarginLeft and paraIndent, which are read from the opening run only. Neither mistake changes the run count: the only symptom is a differently shaped paragraph, with no error.
Default
ts
'left'bold?
optionalbold?:boolean
Bold style
Default
ts
falsebreakLine?
optionalbreakLine?:boolean
Add a line-break
Default
ts
falsebullet?
optionalbullet?:boolean|"inherit"|TextBulletProps
Add standard or custom bullet
- use
truefor standard bullet - pass object options for custom bullet
falseis the explicit off: it writes<a:buNone/>plusmarL="0" indent="0", which overrides whatever bullet the layout's or master's list style sets for this level'inherit'states nothing at all (no bullet child and no margin attributes), so the list style keeps reaching the paragraph- omitting the option means
'inherit'on a placeholder definition (defineSlideMaster({ objects })), and on text filling a placeholder the layout defines, which takes the definition's bullet. Anywhere else it meansfalse
The margins are only a default of the bullet state: paraMarginLeft and paraIndent state @marL/@indent independently in any of the three, including an inherited margin under a drawn bullet.
When a shape's text is an array of runs, state this on the opening run only. A run that draws a bullet starts a new paragraph by itself, so repeating it (the placement that align requires) turns one three-run paragraph into three one-run paragraphs. A paragraph takes its properties from its first run.
Default
false, or 'inherit' on a placeholder
caps?
optionalcaps?:"small"|"all"|"none"
Text capitalization (a:rPr/@cap, ST_TextCapsType)
'all'= ALL CAPS'small'= Small Caps'none'= the explicit off: it writescap="none", which overrides a capitalization the run would otherwise inherit. Omitting the option states nothing and lets that inheritance stand- PowerPoint: Font > Effects > All Caps / Small Caps
Default
ts
(unset) inheritcolor?
optionalcolor?:string
Text color
HexColororThemeColor- MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Color
Examples
ts
'FF0000' // hex color (red)ts
SchemeColor.text1 // Theme color (Text1)fontFace?
optionalfontFace?:string
Font face name
Applied to the Latin (<a:latin>) and complex-script (<a:cs>) font slots, matching how PowerPoint writes a font picked from the UI. The East Asian slot (<a:ea>) is left to inherit from the theme unless fontFaceEA is set. Forcing a Latin-only face into the East Asian slot duplicates/ghosts text in Office 365.
Example
ts
'Arial' // Arial fontfontFaceEA?
optionalfontFaceEA?:string
East Asian font face name (<a:ea> slot), used to render CJK (Chinese/Japanese/Korean) glyphs
Independent of fontFace: set alone, it writes only <a:ea> and the Latin and complex-script slots keep inheriting. When omitted, <a:ea> inherits the theme East Asian font, which is what PowerPoint does for Latin fonts.
Example
ts
'微軟正黑體' // render East Asian glyphs with Microsoft JhengHeifontSize?
optionalfontSize?:number
Font size
Example
ts
12 // Font size 12highlight?
optionalhighlight?:string
Text highlight color (hex format)
Example
ts
'FFFF00' // yellowitalic?
optionalitalic?:boolean
italic style
Default
ts
falselang?
optionallang?:string
language
- ISO 639-1 standard language code
Default
ts
'en-US' // english USExample
ts
'fr-CA' // french CanadianparaIndent?
optionalparaIndent?:number|"inherit"
First-line indent (points): a:pPr/@indent, the offset of the paragraph's FIRST line from paraMarginLeft. Negative hangs the first line to the left of the body, which is what a bulleted paragraph does; positive indents it to the right, the "first line indented" prose form. PowerPoint: Paragraph > Indentation > Special.
'inherit'writes no@indentat all, so the paragraph takes whatever its list style (a:lstStyle→ placeholder → layout → master) sets: the same third state bullet spells, on the attribute beside it- omitting the option keeps the bullet-derived default: a drawn bullet hangs the first line by its margin,
bullet: falsewritesindent="0",bullet: 'inherit'writes nothing - a value here overrides all of those, in every bullet state
Examples
ts
-18 // hang the first line 18pt left of the body textts
18 // indent the first line 18pt, prose stylets
'inherit' // keep the list style's indent, even on a bulleted paragraphRemarks
Read from the opening run of a paragraph, like bullet and unlike align; a value on a continuation run is ignored.
paraMarginLeft?
optionalparaMarginLeft?:number|"inherit"
Left margin of the paragraph (points): a:pPr/@marL, where the paragraph's body text starts. This is the paragraph's own margin, not the text frame's internal padding (margin) and not the discrete outline level (indentLevel, which writes a:p/@lvl). PowerPoint: Paragraph > Indentation > Before text.
'inherit'writes no@marLat all, so the paragraph takes whatever its list style (a:lstStyle→ placeholder → layout → master) sets, the third state that omission cannot spell, since omitting it writes the bullet-derived default- omitting the option keeps that default: a drawn bullet writes its own margin (see
bullet.indent),bullet: falsewritesmarL="0",bullet: 'inherit'writes nothing - a value here overrides all of those, in every bullet state
Examples
ts
36 // body text starts 36pt (0.5in) from the frame's text edgets
'inherit' // keep the list style's margin, even on a bulleted paragraphRemarks
Read from the opening run of a paragraph, like bullet and unlike align; a value on a continuation run is ignored.
softBreakBefore?
optionalsoftBreakBefore?:boolean
Add a soft line-break (shift+enter) before line text content
Default
ts
falsetabStops?
optionaltabStops?:object[]
tab stops
- PowerPoint: Paragraph > Tabs > Tab stop position
alignment?
optionalalignment?:"r"|"ctr"|"l"|"dec"
position
position:
number
Example
ts
[{ position:1 }, { position:3 }] // Set first tab stop to 1 inch, set second tab stop to 3 inchestextDirection?
optionaltextDirection?:"horz"|"vert"|"vert270"|"wordArtVert"
text direction horz = horizontal vert = rotate 90^ vert270 = rotate 270^ wordArtVert = stacked
Default
ts
'horz'textWarp?
optionaltextWarp?:"textNoShape"|"textPlain"|"textStop"|"textTriangle"|"textTriangleInverted"|"textChevron"|"textChevronInverted"|"textRingInside"|"textRingOutside"|"textArchUp"|"textArchDown"|"textCircle"|"textButton"|"textArchUpPour"|"textArchDownPour"|"textCirclePour"|"textButtonPour"|"textCurveUp"|"textCurveDown"|"textCanUp"|"textCanDown"|"textWave1"|"textWave2"|"textDoubleWave1"|"textWave4"|"textInflate"|"textDeflate"|"textInflateBottom"|"textDeflateBottom"|"textInflateTop"|"textDeflateTop"|"textDeflateInflate"|"textDeflateInflateDeflate"|"textFadeRight"|"textFadeLeft"|"textFadeUp"|"textFadeDown"|"textSlantUp"|"textSlantDown"|"textCascadeUp"|"textCascadeDown"
Preset text warp / WordArt shape (<a:bodyPr><a:prstTxWarp prst="..">), which bends the text along a preset path (arch, circle, wave, …): the whole ST_TextShapeType set.
Examples
ts
'textArchUp' // bend text along an upward arch (e.g. a label following a ring/arc)ts
'textCircle'transparency?
optionaltransparency?:number
Transparency (percent)
- MS-PPT > Format Shape > Text Options > Text Fill & Outline > Text Fill > Transparency
- range: 0-100
Default
ts
0underline?
optionalunderline?:boolean| {color?:string;style?:"none"|"words"|"sng"|"dbl"|"heavy"|"dotted"|"dottedHeavy"|"dash"|"dashHeavy"|"dashLong"|"dashLongHeavy"|"dotDash"|"dotDashHeavy"|"dotDotDash"|"dotDotDashHeavy"|"wavy"|"wavyHeavy"|"wavyDbl"; }
underline properties
- PowerPoint: Font > Color & Underline > Underline Style/Underline Color
styleis the fullST_TextUnderlineTypeenumeration (ECMA-376 §20.1.10.81)'none'is the explicit off: it writesa:rPr/@u="none", which overrides an underline the run would otherwise inherit from its list style, placeholder, layout or master. Omitting the option instead states nothing and lets that inheritance stand. The two are different facts, not two spellings of one.trueis shorthand for{ style: 'sng' }, a single line.falsestates nothing, as omitting the option does, so an inherited underline stands;{ style: 'none' }is the explicit off.
Default
ts
(unset) inheritExamples
ts
underline: true // single underlinets
underline: { style: 'dbl', color: 'FF0000' } // red double underlinevalign?
optionalvalign?:VAlign
vertical alignment
Default
ts
'top'