everybody to bootstrap paragraphs
I'm Jim Burch I work locally at Zeno
Media out in the suburbs
one of the organizers here thanks for
coming
I have the slides online if you go to
Jimmy PIR CH /vp
you can follow along and then I also
have a demo sites EP chip merch and you
check it out what is bootstrap
paragraphs it's a module that provides a
suite of content and layout paragraph
bundles made for the bootstrap framework
does everybody know what the paragraphs
module is then anybody okay so in Drupal
we have entities called nodes right and
they are mimic pages paragraphs are
entities that are just four components
on a page so basically they're kept in
the database it's good for pieces of
content that you can chunk out this
module is what they call opinionated
it's going to install a bunch of these
components for you so this presentation
will go through what it does you know
how we're using it and then it's going
to step through a little bit of how it's
built and how you can extend it or use
this idea to create your own module that
will install pre-configured paragraphs
so my ultimate goal with this was to
build a better page builder you know
we're constantly building landing pages
you know the one body field on my page
it wasn't enough for my content creators
they wanted to be able to add carousels
and columns
and accordions so we started building
through polite sites and this kind of
evolves from there so durable paragraphs
it's a contributors to build
customizable content components why I
started using paragraphs is that I
wanted different widths for different
pieces of content I was presented a
design by a designer that had a really
narrow typography column you know they
told me that the most readable content
you can have is about 70 to 80
characters wide but they didn't want
their pictures to be limited to that so
they didn't want that one column they
wanted pictures and videos be full width
you know but the content the words to be
shortened so that's how I kind of
started exploring and I found paragraphs
and you could use different templates
for each of them
I've never liked WYSIWYG started out
using a custom CMS in 1997 and you know
basically I asked the developers to just
remove it like learned HTML myself and
then I started getting the Drupal world
you know I really loved the ckeditor
it was really cool that you could do all
the things with it but then integrating
that with entities like media and Drupal
there's a lot of times where I don't I
feel restricted by the WYSIWYG like when
I want to add a little bit of JavaScript
or json-ld or iframes you know things
that would tend to mess with and then
the paragraphs also allow us to put
pseudo layouts aside our page
the bootstrap framework is everybody
familiar with the bootstrap front-end
framework used on most of the Internet
basically it's pre-built CSS and
JavaScript components that you can use
and build upon it's the most popular
HTML CSS and JavaScript framework for
developing responsive mobile first
projects on the way why we use bootstrap
before its core functionality that
responsive out-of-the-box we don't have
to think about it
they have good feasible components it
has a very readable typography base
again so we don't have to get really
deep into that for our clients it's
well-documented and you know
standardization on a certain platform or
a certain framework helps team become
more productive onboarding new
developers is quicker it's completely
customizable for large projects projects
that have the budget where you can go in
and make everything the way you want it
you can use their mix-ins and apply it
to your own semantic HTML and it
provides best practices for small and
low-budget projects so like you know if
you don't have that budget to customize
everything it just works out of the box
yeah it is an open-source license uses
the MIT license I you can contribute
back to it if you would find a problem
just like Drupal so for those of you who
are already using paragraphs how many
times have you built like the text in
the image paragraph or the slideshow
paragraph and how many times have you
built it just a little bit
like this is when I go back to my first
Jew blade site where before I did this
and I built a lot of the same stuff and
it's just like a little bit off so if I
have to tweak that markup or CSS or
anything it's just like if you're not
using paragraphs install this module on
dummy site you know a blank website they
get and you can see the power of what
paragraphs can offer you it's like a
really good demo to start and then you
can see how you can use paragraphs to
you know fit your needs so my strategy
when I started building this module was
to create a module that would make the
basic paragraphs that all of our sites
would use create base templates and CSS
that could be used with any theme that
includes bootstrap
so there is a Drupal bootstrap theme it
will work with that it will also work
with any theme you want that includes
that bootstrap CSS and JavaScript so if
you're making your own themes or if
you're purchasing things it will work
with those just as long as the bootstrap
framework is included the triple is very
good in relating different kinds of
content and this is the power of the
entity reference revisions fields so I
can nest paragraphs inside of each other
and once I realized that you're really
opened my eyes to how deep we could get
into creating these components so my
columns paragraph bundle has a field
that references all their paragraphs so
inside the columns I could put a text
one or an image one or a carousel where
I could nest more things as I will get
into that kind of a minute and then have
a few global settings so every paragraph
has width and background color options
and we can standardize those too
so my inspiration a couple years ago at
the Twin Cities drupal camp in beautiful
Minnesota I think would that shirt you
were wearing right there was the
presentation by Wes Lim and David
Needham who are both here today
died in this room called using
paragraphs to weave a beautiful content
tapestry and they presented the idea of
breaking paragraphs into content
paragraphs layout paragraphs and then
ponies
some people like unicorns and I prefer
ponies this idea like just thrown out at
a camp just like this like really helped
me solidify my strategy that I wanted
for the month the module like I here's
that 80% of content and layout and then
that last 20% those are our ponies those
are going to be different on every site
we work on that's outside of this but
let's get the content down so for the
global settings every bundle that we add
has a background color and a width and
we use this we have a select field that
we add to each of these bundles that
lists these tips the bootstrap framework
has columns and you know we called it
tiny through full we gave it real names
for contents of administrators because
call for offset for doesn't really roll
off the tongue to somebody who's just
building a blog or a landing page so
basically we have these widths inside
for every bundle that's shown in the
image so we started that talked with
tiny go all the way down to the bottom
of the fullscreen and everything
between the background colors bootstrap
has six built-in default classes that
you can define there's options for these
so primary/secondary success info
warning of danger you can define the
define those in your own theme and
they'll be available for your
pre-interviews or it comes with a
plethora of nice material design colors
that you can use those are on every
single bundle and we'll go through these
now so the content bundles these are
things that we have pieces of contents
in the database so simple HTML this just
has a field that looks like a WYSIWYG
image blank Drupal blocks views we have
sub modules in the module folder for
contact forms the contact module and
then web forms the web form module and
then I hope to add media to this list
too
now that it's in Drupal core for our
layout bundles these are the ending they
have entity reference revision fields
that link to other paragraphs so we have
columns carousel accordion modal and
tabs will step through each of this so
here's our simple yep we have two two
background the background in Whitefield
and then we have the body seals easy
peasy this is like the standard first
plan the image field are the image
bundle has an image field where we force
the alt text on good for accessibility
and SEO and there's an optional link
field so if you want to link this image
ouch
you can fill that out if not it doesn't
harm anything
the blank paragraph bundle this is an
unrestricted text field so this we used
add MailChimp forms or par dots you know
marketing automation forms you can add
json-ld for SEO you can basically put
anything in there you want this is a
security risk to allow content creators
to put anything they want into a into
the database is a risk so you need to
weigh that option of whether you use
this or not there is a module called
paragraph permissions where you can
restrict access on a paragraph type
level so you could allow administrators
and webmasters to use this bundle but
not necessarily your entry level editor
or in turn Drupal box we can use
paragraphs to put blocks on a page so
blocks traditionally order placed in
mold block builder page get the name of
it or using panels but we can actually
reference blocks inside of your content
this is kind of an example module this
references the blocks that come with
Drupal which are who's logged in the
header the menus
I really haven't found a use for this
but it's a good example if you're
creating custom blocks you can use this
to extend and use it in your own block
system so some of the things that are
working right now for Drupal blocks are
the menus the powered by Drupal site
branding Status Messages and tabs not
all of these things have field
formatters basically so you can't put
the page title in there yet or
administration or breadcrumbs but
hopefully someday
use this paragraphs to layout your whole
page views so we have a bundle that
allows you to put views in line with
your other content it uses a module
called views reference field which
provides us this feel that lets you
autocomplete a view in there and you can
even pass it arguments so basically you
see here I'm referencing the view I
called pages we're using the block
display of that view and then if I
needed to have passage in arguments like
a contextual argument I could here so we
could put a piece of content some text
and then a view of something and then
some text below it really easily like
while we're building a page it's a
really powerful option okay now we're
moving onto the layout once so we have a
columns bundle this allows us to put in
any piece of content in two columns and
it's a multi field so if you put in one
it's just going to be centered if you
put in two it's going to be 5050 you put
in three it's going to be a third a
third a third all the way up to six when
I first started I did like a lot of
people do and we wanted to to comb and
paragraph bundle let's put in two
different fields and then the first
thing my client said to me was oh I want
to reorder the fields can I just drag it
over there and the answer was none so we
switched it up and made it into that
columns equal and then if you want
staggered columns we have a two column
and a three column uneven field and that
has an additional setting on it that
lets you define the column style options
so if you want a 2575 or 3366 you can do
that there so here's what they look like
there's some various widths and then
equal columns all the way down there
there's the two uneven columns when I
kind of predefined a lot of settings you
don't
every possible math setting in there the
three columns so it gives you a lot of
different layout possibilities if you
want to add multiple things into each
column there's a column wrapper bundle
so this allows me to put in a simple in
the first column and I put in a column
wrapper with an image and a text and
then another simple in the third column
that's what it looks like in a two
column so I have two images on the left
and the column wrapper and then just a
simple array onto the fun stuff
carousels so you put a carousel bundle
in and then you have a carousel content
option so you can put whatever you want
in that carousel content so here's a
bunch of examples in this gif two
columns just an image another two
columns with images a text pretty much
the only thing you can't put in there is
another carousel it breaks I tried sure
but one nice thing about this is like as
soon as you give somebody an option for
a carousels you know what's do they want
it's a second parasol on the page so you
could put as many carousels as you want
on one page I would recommend it but
this also has options for whether you
want it to slide by default and then at
what speed you want to slide
the accordion I haven't used this much
but it is one of the most popular things
that the issue queue has brought me a
lot of people are have been helping me
out with this and giving me use cases
that I I didn't even see before but the
bootstrap javascript has a script called
collapse and basically you can collapse
content into each other this is where
things got a little bit deeper in the
nesting we have a accordion and then we
have an accordion item and in the item
we have a header that's what you used to
link at the top to expand what's inside
and then you have that content inside so
it's kind of like the carousel you could
put whatever you want inside of the tabs
or the inside of the closure
mode oh this has a few fields it has a
button text so you can put a button on a
page and then you have a title body and
footer of what goes into a modal really
good for forms videos you know if you
want anything to pop up on a page you
basically you know put this button on
the page and then it pops up and you can
put whatever you want so here's a simple
with a contact form inside
and think this is the last one tabs like
the accordion we have a tab title and
then a tab contents and you can add as
many tabs as you want in there and then
put whatever piece of content you want
inside so those are the basic paragraph
Clips two sub modules we broke these out
I originally had the contact form inside
the main module but a lot of people are
using web form instead so we broke them
up we can use whichever one the contact
form relies on the contact formatter
module of well contact forms are
referenceable you need another module to
actually have them display if you use
something like inline entity form on top
of this you could actually allow your
administrators to create new contact
forms as they go so you pop open a
paragraph bundle at a contact form
bundle and then you can allow them to
either selecting an existing contact
form or using mine enemy form and FM add
a new same thing for the web form you
this relies on the web form module and
you can add you know your administrators
can create new bundles new forms as they
go and this is my favorite cape of all
time not only because this camp is
awesome but Matt welcome matt says
there's no place like 127.0.0.1 like and
that's so nerdy gifts right there
okay so like that's everything that
comes into the module this is going to
get a little technical now I'm going to
talk about the template system and the
mark-up system that I used to create all
this every paragraph is a div we have
div class equals paragraph this wraps
everything around it in the bootstrap
world we apply
rogue class to this so bootstrap is
container that's the biggest thing or
container fluid that's the outside and
then rose so we apply the row rules to
the paragraph outer div because in
bootstrap rows can be nested inside of
other columns so that's how we use the
bootstrap CSS like instantaneously in
paragraphs on top of this we use the
front end rules I guess called BM block
element modifier so we add modifiers on
to our paragraph class we add the
paragraph type so you could theme all
types of a paragraph like all simples or
all images we add the view mode so if
paragraphs can have different view modes
teaser mode or a full mode by default
this is just default we had the width
name so that tiny through fall and then
if there's color selected we add the
paragraph color and then the paragraph
color name inside of that column or
inside of that row we have the paragraph
column so here's this is where we
actually apply the width so that outer
one is the row and then this column is
gets the whit classes applied to it
and then here is some awesome twig where
we basically add the content inside of
us without the Whitfield is a background
field and I'll explain how we get that
in there so even though we're using
fields and by default fields come inside
of content you can actually use twig to
say here's the content without these
ones so this is a big mess if you're a
non developer but here we're rendering
that with field and we're turning it
into classes so here's what's in the
database here's what's in the classes
down here we render it again if there's
the width field render it and then merge
classes with these wit classes so then
down here we have to do attributes
classes this is where all the fuss is
going to add into the div here's where
we merge the wit classes in gears we
divide the width of classes
we repeat this process over and over
again so the wit classes to background
classes and the carousel speeds like all
that kind of stuff we is this system
throughout if you look in the templates
we've tried to write comments on every
single function to help people who are
going to customize this data the Drupal
so in our template system we add
libraries the CSS and JavaScript
for each of those bundles only on where
those bundles are used so this is the
default right now we have groups we have
a attach library call we're attaching a
default reference library and then if
the paragraph bundle is one of the
columns one we add the columns library
so that way we can chunk out all of the
CSS and JavaScript into small little
pieces that only get loaded when they're
needed and then you see like here we
have the tabs long in the tabs template
here's what the libraries file looks
like at the top we have our default
library and then like right underneath
that we have the component for the
accordion library we minify all the CSS
and we select the free process equals
false flag so that means it just gets
added it doesn't get compiled into your
CSS library if that were the case if we
didn't treat the file then we would have
a new compiled CSS file every time this
libraries changed so basically it
doesn't mess with your theme you only
add one more CSS file if it works and
this is good for an http/2
we're rather than one big file we get
lots of little files and it helps speed
up the delivery of you safe okay and
bonus rounds I like to have those
collars full width so we actually have a
new we add a new region in our templates
theme system for this field only we say
pending left:0 pending right zero with a
hundred percent and then in our block
layout screen well you have your page
title tabs and up here in your content
block you can also have just that
structured how to field where you have
all of these paragraphs bundles laid out
so you you know you install this you're
gonna get 80% of what everything needs
you're gonna have to override it as we
do as themers and the site builders you
can customize every single piece of this
so when you install this module it takes
config and enters it into your database
so if you're keeping it just in your
database
you own it if you're using config export
and import on your local sites and
development sites you've taken what's in
the module and put it into your database
any changes you make to it are yours the
CSS and templates your theme have a
higher priority than the module it's on
so if you take a template from it and
move it to your theme you own it if you
take CSS and move it over to your theme
you overwrite it in fact you could
install this module and then uninstall
it and tell all your co-workers what an
awesome day you had being productive and
building all this stuff yourself all you
need to do is with the templates to your
theme and then add those attacks
library calls move the CSS file into
your theme and updates the themes
library functions and that's it
so let's build a module on top of this
[Music]
we're going to use that Drupal block
bundle and create a custom block
paragraph bundle type so by default when
you're building this you have to select
which bundle type so I've made a couple
blocks in this demo site here I think
we're gonna go with awesome block is
what we're gonna use so we open up the
drupal paragraph bundle and we see the
three fields that it has the background
field the width field and then if block
and any reference fields so this is what
we're gonna replicate you add a new
paragraph type called awesome block and
then we start adding field so the first
field we add here is the BP background
field it's already there all you need to
do is select it you're done
second step at the Whitefield you're
done for the block reference field and
they add in new fields because this is
the new field you're creating you want
to select the reference revisions field
because paragraph bundles are revisional
use the entity reference revisions
module that comes with paragraphs rather
than just a standard reference field so
revisions keep multiple things of the
same ID in the database versus just
reference field with reference one
instance of it so you're always gonna
grab the latest revision or the revision
that you're supposed to grab so entity
reference revisions module comes with
paragraphs and you'll notice in the
fields options here they no paragraphs
exist when they made this list they
don't know about everything else that
could possibly use this so it's a
two-step process you have to select
other and then on the next screen you
can select which paragraph or which
entity type you want a reference so this
lists all the things on my site contact
which are no enemies paragraphs with
your paragraph under these and then the
custom block which is what we are
looking for so I select that and you
also have an option to allow one or many
right below it it's up to you the next
screen after that it goes in and says
which custom block do you want your
reference and this the end the reference
revealed needs to know which one you see
how the bundles there is starred is
required so if you wanted all of them
you could select all of them in this
case we want the awesome block not then
not so awesome block or the basic block
and then here's what it looks like you
want to move to the manage display field
change the background and width to the
key just like the Drupal block module
and then for the awesome block we want
to just have it displayed as the
rendered entity and here's you could
choose your view mode if you wanted to
so the hero we made a sub module called
the xeno hero we hope to put it into the
main module as a sub module before it's
a much more complex example it has a
paragraph reference fields for content
it has a background image field we're
actually going to replace that with
another reference field to put an image
or a video or a gradient or there's been
a lot of options since we've built those
people say they know how about I put a
video in the background instead of an
image and then it has four options
fields parallax image overlay or a
background overlay an image overlay
inverts so if you want the overlay to be
black or white and then it has
zooom Ken Burns effect kind of thing
[Music]
here's what it looks like here's what a
picture of it looks like just pull over
here this is what it looks like in real
life
so you can see the zoomy can Lindsey and
then the parallax is that the background
moves slower and then inside the words
and the call-out button is just a simple
bundle that's put inside of there so
what's parallax good parallax is the
different speeds of the page moved at
different levels to really get where
different layers of the range moves at
different speeds yes yeah so here's what
that the fields look like you have the
background image field and then the
entity revisions field and the most for
setting experience manage this place and
thing from the Select lists we put in
the keys background be is the image and
then the content we render it as a
bundle what I wanted to show you here
was the weight we had the classes before
some of this stuff is JavaScript added
so that overlay levels it's just a
number and we do data overlay or
parallax speed down here in the in the
twig you can send an attribute instead
of just classes you can set an attribute
data overlay equals that overlay layer
set a level say looking for data speed
this is the speed so not only can we add
classes and ID's into the twig we can
also add data overlays or data -
whatever you have for JavaScript
functions and then this gets more
complex you have content without and now
instead of just the width in the
background field you have the universe
the parallax
okay final thing I wanted to go over was
working globally and part of I think
what we've always used Drupal for is to
get us 80% of the way there so we're
using with Jeff or Drupal because we
want to not have to build a page system
or a theming system or a login system
we're using bootstrap because we don't
want to rebuild a grid system and a
typography system on every site as a
site builder which is where I come from
yes I builder and then more of a
front-end developer I can build a lot of
this stuff inside your bulb when I start
to work on a site but I also want to do
that and reuse it everywhere so we'll go
through it most of this module is config
it's basically config one PHP function
that says look over here for the
template folders and then a whole bunch
of twig so we're going to step through
building a module using config basically
I spin up a site on Pantheon or you know
you can spin offering local however you
do and start fresh you're not working
for a client today you're working on
this feature so we're gonna build a
module that we create once and reuse
everywhere build a module this module
installs paragraph okay first thing I do
spin up a blank site
second thing is to creating a module
structure there's a project called
Drupal console we can type of command
and it will spit out this structure or
you could just follow it or clone
something like the Zeno Hiro and delete
everything basically you have a module
file the libraries file in an info file
every project should never read me so
everybody else knows what it's brought a
templates folder it's JavaScript CSS and
config and folder and inside the config
you have the install folder so anything
any configs you put in the install
folder will be added to Drupal installed
in Drupal when you enable the module so
create a template or CSS and a template
a JavaScript and then configure them in
the modules library file you're building
this module basically as a template to
apply all these all these CSS functions
to another site by not only the CSS and
JavaScript but the actual guts of the
bundle itself so say you use this like
carousel
you know we're another JavaScript
component you want to make some piece of
functionality instead of just building
it in the UI on your clients site you
build it on a dummy site and then you
know do everything you need to do and
then make it into a module that you can
install on your client site but then you
can also use it on your next class site
so you can have like other libraries do
this yeah
[Music]
I am NOT a PHP developer but this is the
only PHP that's in these modules that
just basically says we're hooking into
the theme system and a bundle name of
zero hero you know we have any template
for you over here
once you've built everything in the
Drupal UI and you export the config this
is what it looks like it gets spit out
it's gamble yet another markup language
that it's basically just a list of
everything they do built inside one
thing this UUID says that it goes with
my dummy site go in and delete that the
other thing is that all of the field
names have field underscore in them the
fields ui module in Drupal adds that up
high which what happens or what could
happen is this could lead to conquest so
I have a field called content field
under store content if I had spelled my
new module on somebody's site that
already had something called field
underscore contents you would want to
there would be a conflict the Bible
would install so when I explore my
config like go in and delete the UUID
that makes it unique I don't want this
to be unique then I go in there and I
come up with a machine name that I can
use not only for the bundles but also
these fields so if you look in the yeah
[Music]
go back in those field names paragraph C
no hero modify that so it's building
that included that entire section
sure so you can you could do it in the
UI like I've seen people do feel
underscore XYZ underscore contents yeah
that is okay but again somebody could
replicate that in the technically they
could replicate that what we did in the
booster paragraphs my goal was we
replaced filled with vp underscore so
that like guarantees if somebody were to
add a BP underscore content field inside
the field UI it would then be field
underscore BP over sputters oh so like
Deacon guarantees like game's facing you
the fields in addition to bundles and
then test it basically the Z no hero we
have it up on github
until we can roll it in so basically you
could include your external javascript
you know and whatever you need this
function to do
[Music]
okay and summing up right on time using
frameworks benefits productivity that's
why we use Drupal and bootstrap and
paragraphs you can use this to apply
other grid systems the mid camp site did
it with singularity grid system instead
of framework there's a lot of people
working different ones on the foundation
system Bryan Perry was given a talk
later this afternoon made a theme and a
module it extends the theme for the
foundation framework the slick carousel
is another one I've seen yeah
so depending on what functionality you
know you can extend this to what you
need many thanks to the makers and
maintain errs of the paragraph module
lesson David there's a duple twig slack
in addition to the Drupal slack where I
learned a lot of the twig stuff that's
in here and Scott Reeves
Kotzur who's here today we're in a
digital echidna hockey shirts when I was
learning all this stuff I would end up
on Stack Overflow as we all do and any
twig related item he seemed to have
answered it and helped me consider him
one of my mentors in Drupal because I've
read so many of the stack overflows and
then all of my amazing co-workers Albert
ski who helps me do all the things I
can't do in his Co maintainer and all of
the people that are helping an issue
queue slides will always be up at this
URL the demo site is up to follow me on
twitter if you got any
questions or anything you're asking me
to pushes up another question for you
pal this first column in all the
examples the columns were all individual
bodies tax I'm sure is there a way to
design this so the columns would flow
like newspaper columns right sighs yes
so the column or well it would depend on
the grid system they use so right now
the bootstrap system that we applied is
a row and then we have you know a multi
field that goes columns across and then
you could put in a column wrapper that
could put multiple things in there
wrapper
there are JavaScript libraries like
isotope in masonry that's are more like
things flow into the space that's given
to them you know so you could just take
one field and put as many things in
there as you want and use a CSS and
JavaScript library that could display
that be cool use of those wine what I
was thinking about for this specifically
was replacing a printed newsletter with
an online newsletter that would print to
look like the princesses
so so yeah the idea I mean the basic the
basic thing there is that these
traditional traditional techniques so
that the article is spread across three
four columns in the center of the page
or two columns if there's an image to
the side maybe but it flows so that it's
maintained within a relatively small
vertical space check so that's that's
why I asked that question because that's
something I'd like to replicate and to
be able to like print it as a PDF into
law and all that stuff is all that
functionality is available the idea of
building a module that a law like
functionally so you can replicate across
sites disputable cook but that's the one
kind gotcha that I see is that all these
examples do that flow the text column
yeah my guess is that you would need
JavaScript for help with that because if
you make them on go with your JavaScript
up there a lot of people grab it yeah so
they you know the one thing about a
newspaper is it's always this big you
know well this is sizes our screen so
you would need to know that well and so
and to make it responsive and I mean
obviously when it becomes responsive all
bets are off as far as the layout things
like that thing but that's fine because
if I'm looking on my phone I'm not gonna
want to see six columns across genders
like but the idea of being able to have
some minimum width to have it display in
such a way that you could define the
limits vertically and horizontally so
that it would
fact replicating a printed page that's
why I be going check out the masonry
javascript library nice nice crack the
view when you think you can do an
activity for the port tokens the like if
you were reusing that block on different
nodes can you pass it the note ideas
associated with or I believe so that
uses the views reference field module
and I just implement the field so there
are there were a lot of options in
Drupal 7 when I was building this in
Jubilate there was only that one so we
went with it and it's so far it's worked
we've passed attributes I'm not sure
about tokens but I'm sure I assume that
it's there so your markup show
originally in the paragraph you said was
is the parameter the Robin oh yes so I
use bootstrap in apply I use their
mix-ins and I use grunt and compile the
blue check classes into the paragraph
classes that I being necessary so the
bootstrap paragraph the bootstrap
classes don't actually get in there but
there's a ravine for you correct so I
take what they did and apply it to
paragraph I did this because I remember
upgrading boots jet to to bootstrap 3
where they completely change the class
names they used to be expand to and then
it turned into call is this this is just
booster breathe this is bootstrap 3 but
because I take the properties and items
that applied to my own classes it's so
far it's worked with every bootstrap
force
what kind of a difference where I could
tell we're not that different they did
add more and the flexbox East so I have
an issue in ESU - to see what else is
out there that I could implement and I
had some people that say hey who doesn't
work with which f4 I said as far as I
know let me know if it doesn't and it's
been a year and a half and yeah so far
so good
the UH bootstrap theme has not switched
to bootstrap for yet
this is not dependent on that I just
have to have the libraries are being
cracked and that say for the most part
like the CSS is there but because I've
applied it to my own classes you know
you don't need that but like things like
the collapse job right
and I hope so as soon as we get to a
full release
Albert's key micro maintainer an awesome
co-worker has a lot of other modules or
so yeah we're in beta 3 right now the
update hooks are hard so yeah we haven't
gotten to a full release kind of been
waiting for media and core so like we
have the image bundle now but it would
much rather see where media is going and
you know we're gonna have a slow media
library or I definitely want to use that
know I use less because I come from the
booze jak3 world but eventually we
should probably go
no the boots the module assumes that you
are calling in who strap in your theme
[Music]
then everything should work on your box
yeah so I just didn't want to limit it
to the bootstrap thing because like
these two things like why we use push
definitely we have certain sites we like
have 15 our budgets and you just like
spin them up and kick them out and you
know it we use the bootstrap theme for
that and then we have other sites that
go on for years and we kind of use our
own base theme and pull in the blue
champagne
so extendable and Graper there else
awesome well thanks for sticking around
so late on a Saturday and
[Music]
[Applause]