Global Lua Modules/Quote

Quote is a module for creating stylized pull quotes. This includes both single quotes as well as dialogue text.
== Features ==
* Highly customizable with classes, inline styles, and portable/modular CSS.
* Highly performant and backwards compatible with previous incarnations of the template.
* Uses semantic markup and modern CSS for SEO, accessibility, and mobile-friendliness.
* Optional features such as left- and right-aligning the pull quote. The template breaks silently and elegantly when not all parameters are provided, giving it flexibility.
== ==
=== Module ===
First thing is the module itself. You don't need to copy the code. Just create a module titled Module:Quote (or any other—just remember to adjust #invoke calls) and put this in the code.
return require('Dev:Quote')
=== CSS ===
Next, add the contents of MediaWiki:Global Lua Modules/Quote.css to your Common.css or FandomDesktop.css, or copy and paste from the following:
=== Template ===
The module is designed to be used as a regular template. To do that just create a template (ex: Template:Quote) with following content:
{{#invoke:Quote|quote}}
Now the template you created will accept parameters documented below.
To implement a dialogue template, the same module is used with a different parameter. Create a template (ex: Template:Dialogue) with:
{{#invoke:Quote|dialogue}}
To create a template accepting the parameters documented below.
These parameters can also be passed directly to the #invoke and will act as defaults. Their values will be overridden by same ones passed to the template.
== ==
For examples of how to use these parameters, see #Examples.
=== Quote ===
Parameter name 	Description 	Required?	Default
unnamed 1, or text, or quotetext 	The text to be quoted. 	Yes 	—
unnamed 2, or person, or personquoted	The person who stated the quoted text. 	No 	—
unnamed 3, or source, or quotesource 	The source of the quote (e.g. the passage or title from which a person is being quoted).	No 	—
=== Dialogue ===
Parameter name 	Description 	Required?	Default
odd unnamed parameter 	The person who stated the following quoted text. 	Yes 	—
even unnamed parameter	The text quoted by the person in the previous parameter. 	Yes 	—
context 	The context in which the dialogue was stated (e.g. an event in which the dialogue was spoken).	No 	—
source 	The source of the dialogue (e.g. the passage or title from which a person is being quoted). 	No 	—
=== Both ===
Parameter name	Description 	Required?	Default
align 	The alignment, either left or right, of the quote. If absent, the quote will be placed in the center of the page. If present, a new block-style will be used to separate it from the content, and it will be floated appropriately.	No 	center
width 	The width of the quote in pixels. This only applies to left or right quotes, for determining how much it squeezes the content on either side, though the default value is generally appropriate for most circumstances. 	No 	300px
class 	Any extra classes to be added to the quote. 	No 	
style 	Any extra inline styles to be added to the quote. 	No 	
== Design ==
Some communities may wish to customize the appearance of the quotes. The source stylesheet is written with this in mind, exposing many appearance options as custom properties, or variables. To modify them, change their values in the :root selector of the stylesheet. They are as follows:
To customize other elements of the design, you may edit the original stylesheet.
== ==
=== Basic ===
Produces:
=== Left-aligned ===
Produces:
=== Right-aligned ===
Produces:
=== Dialogue ===
Produces: