 Good morning, everyone. Good afternoon. It feels good morning, right? So, welcome to building lamps from E78, clothing versus clothing. You can see the vending lane for the slides. We've got the last slide as well. We've got the Asia event, the last slides. The last slide as well. So, on this day, welcome. And I'm here. So, before we really get started on the content, we need to introduce ourselves. And I'll just look forward. Yes, sure. Can you hear me? My name is Joseph Laverde. I'm a bus driver in the Drupal community. I actually started using Drupal in Central America in Colorado. It's one of the reasons why I'm really passionate about traveling and getting to meet a lot of different people from different communities in Drupal. I work in Drupal. Deputy Head of Technology at Amazemats. We're in Switzerland, in Cape Town, and in Austin, Texas. Altogether, 30 people. I'm very passionate about Drupal 8. I've launched our ninth Drupal 8 site already. Yeah, I'm really glad to be here. I'm also a lead of the Drupal 8 initiative. So, if you're interested in porting the rules model to Drupal 8, join us on Sunday for the space. He is Adam Gerrand. I work for 4-1, which is based in Alexandria, Latina, very close to Washington, D.C., which is actually where I'm from, really. I live now in Cologne, Germany, and 4-1 has officers in D.C. and Seattle, Washington, Texas. I've been very interested in official office in Germany as well. I'm very excited about it. I've seen a front-end developer. I've been working with them since 1998. I've done everything from logos, to design, and all the Drupals since 2009. How many of you were on the keynote yesterday morning? Oh, that's awesome. That's awesome. I'm one of the three hits right in the keynote, and we had, thank you guys for coming. We had so much fun. And what I'm not, speaking at GoogleCon, I'm also an officer, and I'm a student of Cologne. So, we also wanted to find out who are you and who we have in the room. So, how's that a show? Yeah, how are you trying? Anyway, so, raise your hand if you're a site builder. Excellent. But if you're a front-end developer, raise both hands for the back-end developers. Is there any project managers in the room? Raise both hands if you ever did. Good. So, while discussing coding versus clicking, basically, when we work with Google, and we have to explain other developers what Google is really about, a lot of the work we do with Google is site building or actual configuration by the interface. And all these different, like the front-end, the back-end, really blends together. So, it's really hard to really, really differentiate. Some of you might be more passionate about implementing everything in code. So, who of you prefers coding over clicking? And who of you loves the flexibility that Google provides by installing additional modules and being able to click together everything? So, almost none. Cool. Today, we're going to talk about how Drupal 7 and Drupal 8 are hit-ground in those approaches when it comes to instrumenting apps. And you should. In every time. You know, the back-end drill, what's any more about that? Well, you can accomplish back-end tasks as a site builder. It's kind of like I'm trying to I'm not really convinced with the graphic yet. At least we've seen that there's coding, there's checking, and everything is based on the back-end. So, first we're going to you're also going to talk about learning, of course. So, as a coder, I really like to be in control of everything. There's already a heavy framework where I can leverage a lot of functionality but when I'm just configuring the user interface, it's a bit unclear for me what will really happen. With the features module and with CMI it's a bit easier for us already because we can push what has been done through the user interface into code. But still being in full control over the markup that we create, especially for layouts, that's better to be a coder. So, for coding, in terms of front-end RetroPalate, we don't need to be using PHP anymore. And that's awesome because we can produce much more beautiful templates using the Tweet Engine. So that's really a big gain for the coders in RetroPalate. So to summarize, those of us who want to implement the layout's in code, we want to have the full control. We don't want to really touch PHP and that's maybe the differentiation that we had before. So a front-end developer can be more about writing templates and doesn't necessarily have to touch PHP. Whereas the back-end developer obviously touches PHP. Being happy about the Tweet Engine. So, we have a live-in approach using the Tweet. So, you have to click all the things to control things, whether it's through DisplaySuite or Panels or Custom Locks now in the Blade. And so much you can do without even touching the screen and require any business. So to summarize all that, we can manage field display back-end, whether primarily through DisplaySuite. You can find layouts in the back-end using the layout plugin. You can control Markup. There's a lock attribute module that's not quite a module yet, but it's going to be coming where you can add YAML configuration and put in extra classes for a lock. It serves as a very simple function to change the Markup. And Panels Components allows you to rule the world in that you can have no page and if you're given no, you have a term reference and then you can have Custom Locks specifically in that term. It's always a little convoluted, but there's so much that's possible just through Yeah, I think it's kind of funny because if you say well, but configuration through the user interface is not really developing something. The tools that we have at hand for example the rooms module or the panels context system they really allow site builders to be creating systems like treat the value objects that are available as objects to arrive at the quantities from them. So the two things that come together. So we're going to cover four basic examples during the course of the session we're going to look at a very simple content layout a landing page maybe something more complicated layout what we're going to call a default layout of variations which we'll do later and how to embed additional content to a node additional content meaning something that is not just the fields contained in that content so we have created a simple demo page actually too because the session has been evolving over the last half a year and we've been adding additional functionality to it so what we can see here is just a simple a simple node like community members for example here we can see Lewis Nyman and we can see some basic information about him and when we talk about layouts what is special about this page is that obviously it has a two color layer so how can we accomplish that if I were in the cooler I would just implement a fake template and structure the markup so that I have two different regions or diff wrappers and there I can just put in the fields required which is kind of it Please meet very similar from now I can walk save and then you have the left and right column drag and drop and you have the left column the right column so to recap when we compare between Drupal 7 and Drupal 8 when you were in the cooler you were implementing PHP templates and instead of that now you used a fake template as we have just seen you were using either a space suite or else to create a common layout and some of you may be saying who's the laborer who plays the delay so far alright one thing you'll notice is that you do have view modes now in core but they're not super powerful you can't add layouts to them if you want to create your full content view mode I wanted to have two columns like we had here that's not possible out of the box in core you have to add I don't know if you can change that just a moment just a little bit yeah anyways the space suite allows you to add multiple columns it also gives you actual control over the field title and where that shows up in order you might not want the title to be first it's the first field in your so so so now we're on a landing page which actually has two two slides that is better isn't it it has two slides on top we have one view a view of all of our sprinters and then the second view we have another view of various initiatives from the united marx initiative and d8 rules and then so this is so six months ago when we were first writing this you would have to reach this level and you would have to create layouts and then you can access them in your space suite you can just click save and you can just you can just page manager so anyway that layout excuse me was page manager but with the layout program and the panels module now ready you can actually do this using panels and not a blocked layout page and that gives you control of the layout through the GUI and not even having to deal with code so yeah if I were to implement the landing page we can code first I need to get the data ready which way we are not allowed to execute that in PHP functions which is good but we hope you have seen complex templates that implement a lot of logic and neural and database statements and all of that sorts in terms of best practice we really don't like the content to mess with the backend so the data separation is now really in place to put it so first of all in order to be able to access the data as a code just implement the pre-process function we can see here that I'm populating a number of variables for example I'm using the views and bad view function to get the random block of the view and I put it into a variable the second one and then in the actual quick template I'm basically adding statements like if this variable is available I'll put the block but I could be adding more markup around it basically so the landing page is this quick template that just calls additional information that I've prepared in the pre-process function so to summarize as a coder we're using pre-process just that we use different templates again and in the clicking approach we suddenly had page manager and panels and now it's very very similar the layout plugin which was in core will hopefully be back in core in 21 is part of the picture the reason, let me actually say it a little bit about that layout plugin is very similar functionality that was in people 7, between panels in this case we had controlling layouts and what the layout plugin is is that functionality in one place so that we all know who would once it is a model and a model for good core development and that's what's really moving towards so panels and this place we both use layout plugin in order to achieve the layout control I think it's kind of cool because panels was not so early ready as page manager was in triple 7 page manager is just a part of people so we could already start building landing pages with just page manager and layout plugin and panels has had the first release in the last month so we could already start making that and Adam will show you later what it provides so now we'll talk a little bit about D7 which is the building tools we've already spoken about because there are the various core libraries we have the page template the page process functions and both the main difference though is that there is no markup in the jubilee through processes the market belongs only in the jubilee files and as we demonstrated in the second example you can get your content your review content and then embed it via a through process and then call it from the page template you shouldn't be actually adding markup in a through process it's not good for maintainability we tried to customize the markup with a manual in 0.7 like you so with these seven way panels and you have the different panels you have plugin to mine I talked a little bit about how it works so it's like two different things the context module we can use it for various things like it's basically also reacting on some context if it's even and then executing actions similar to the root module but what we have been using context a lot in 0.6 and in the early stages of 0.7 was to kind of define if I'm on a mode type architectural then I want to make these blocks available so in order to reduce the complexity of the global block configuration we create different contexts for each of those sections which is kind of nice but it's not really maintained anymore so in group 0.8 nobody has started working the context module but what is there is the context API and that's the that's the thing that's more similar to context of panels or C tools so when we earlier described that you can access the data that's really like a core functionality now it's used by page manager so when you create a route say node slash ID then it will automatically know that there's a node object available to you that's awesome it's also used for example just a bit of confusion with the context in group 0.8 expect the context API to be there but the context module nobody has started working and last but not least the display suite as we'll be showing you shortly the UI is largely the same the functionality is largely the same so you can rest assured that if you've been using it you can keep on using it it's actually pretty cool this play suite was ported so early on so it's pretty mature already while panels has only released in the last month this play suite already had to release after a year so now we're going to go back to the ladder and continue with our examples so we've already looked at a simple content layout and the landing page and now we're going to look at the default layout variations so our variation is very very simple let's say that on the home page you want to have a different flutter than you do on other pages and you can see down here at the bottom you can have the blue marks the front of the fancy board the green marks at the end and we'll show you how to do that how that could be done so one nice feature of Twig is that you can define reusable blocks again an overlock in terminology with triple terminology but the twig blocks themselves are just like sections of the template that then can get reused or overwritten in in overlocking templates so I'm just placing the block filter around the markup that my filter already has and then I'm creating a stock template so based on the generic page template I just specify that I'm going to extend the generic page template and one big issue of having a lot of templates into one was that there was a lot of code application so you copy a big template and then you adapt two lines of code and whenever you have to adapt something else then you have to go through all the templates and make sure that what I wanted to adapt is still valid across all of those templates so that's like very error prone it doesn't follow the don't repeat yourself principle so the exciting thing here is just declare okay this template is going to extend the page template and then the only thing that I specify is what I want to override so all the markup will be output by the base template and then what I'm overriding is the actual filter and in this case we're just adding like a fancy star at the end you can also use the parent so there's the parent directive that will just output the same block and then we're basically able to wrap content as we've seen in the image so that's how you do it in code and how you do it in checking so this is the sad part there's actually not a good way using the UI to get that same thing you can in a theoretical sense use display speeder panels then you're having for panels for example you can have a different variant for front page but then you have two instances where you're placing all of your content in the front page of I mean let's assume that you have one variant for all of your nodes front page and everything else silly because front pages are always special but let's just pretend you would have to have one variant which had pieces of content 1, 2, 3, 4 and then the filter that would be the home page and then your other variant would be content 1, 2, 3, 4 and if you needed to remove content, piece of content 2 you'd have to do it in both places now this isn't that much work no but in a theoretical sense if we're trying to do it have your code in one spot then it's not the best solution in this case using the extending twig is a better solution maybe you could do something with many panels but I think that's the core of it planning number 4 or I'm not sure special bonus 1 embed additional content this is a node page for a given initiative in this case front end united which has the node content on the left on the right is the associated people who are sprinting on that initiative and you could use the core block system to drop this in there but as you guys all know from dupal 7 if you're using core blocks to place content for a large site a page and that's just a really messy way to deal with it and so instead we're going to do something else we're going to use dx lock field so this is in this place we add lock field lock field and you have the nodes the block field so you can take any block that exists literally anything lock field and now in a given view node display the whole content has an issue there I'm going to leave this in the content and now I actually visit the node this is the log endpoint boom so that can be done in display suite it can also be done in panels which I'll show you in another example of in just a moment so in this particular case we use the lock field position of the initiative spinters in the right column as you can see or as you saw in the example here and so that's how we're working thinking yeah for the coders it's basically in the same procedure as I've presented before if we would have if we would want to add additional information again implement the pre-process function and add it to the template that's not really changing much so quick review as coders to have additional content we can invoke the blocks sort of used from our templates in Drupal 7 we interpolate these to pre-process and for clicking in Drupal 7 we have the general blocks EVA which is entity view attachment DS dynamic fields or panels in Drupal 8 or many additional content we have to do DS block fields and then the the ever famous page manager panel layout like in combination now we're going to look at something new and I'm going to introduce this quickly there's a current trend in content called long form content and this is at least in the United States right now how many have you heard of long form content? okay in the United States newspapers are using this a lot New York Times, Washington Post and it is basically it has layers or strata of content a paragraph, a picture three items, featured items or these pages tend to be longer but the density of the content tends to be slightly less and scrollable and so I recommend it won't be the home pages of these websites it will be the individual articles sometimes you'll find these long form content you can also google it unfortunately for us there is a module now in Drupal, I think it was for Drupal 7 as well it's also already parted in Drupal 8 and DSM is going to demonstrate some of that actually we also started doing the home page of paragraphs but maybe we don't use paragraphs in Drupal 7 we had some issues with modeling but for Drupal 8 paragraphs really worked well and let's just set up here on the demo side like the paragraphs demo actually you can just when you download the paragraphs module there is also a demo sub module that will allow you to already have a couple of paragraphs predefined so what you can see here is like a standard node we have a selection text and then we have different sections so for example one section has the image on the left and then the description the other section has the text on the left and then in some text can you go into the admin and then add another layer for some other types of content so when I'm editing the node itself as a content editor I think the main difference here is that we create like very long sections but we we structure the way that the content editor works in a better way they really they have a lot more flexibility because they can add the sections that have been predefined and they kind of have like different templates so we can see add image and text or add text and image add just text add a number of images and then this will get added to the form and then the editor just we've been dealing with massive user weight too often and this way we can ensure that the structure of the marker is the way that we want to have it so I mean you can very easily theme these and have them be in a row but it's about dropping the content to a given section it gives the content manager more control it's actually incredibly difficult for content managers if they're dealing with one WYSIWYG and it never looks quite right and WYSIWYG frustrates them and it does one thing and does the same way on the page and they bother you anyone familiar with the feed collection model? so paragraphs is basically a work of the feed collection model so we have seen now how the editing works and when I go back into the back end I can see that I have different paragraph types so it's like no types but specifically for the paragraphs and they really work the same it's just like they are attached to nodes they don't live on their own in the system but we can see that for any of these different paragraph types we can add additional fields and in a more granular way define the blocks of information that the content editors then can use and on the other hand side we can benefit from like manage display and have the information first structured and then output it the right way as a front-end developer how about the feed collection model correct, in Drupal 7 it has the same problem but in Drupal 8 there's an open issue for paragraphs in Drupal 7 for multilingual but some colleagues have told me that they found work around it so you can also try we decided to not use it in Drupal 7 and it worked out actually, before we talk about it yes, I'm actually going to I'll show you sorry a little more so I'm working on a chapter for a book that's called Drupal 8 Group Blueprints should come out in May and the chapter that I'm writing is on how to build a class 5 the same directory site and so what I've built here I'm just going to talk really quickly through this because there's a lot of site-building aspects that I've used here almost entirely through the UI which is made so here, in the home page we have a few class 5's there's three of them now this is also something that's new in Drupal 8 it's called custom block types I'm going to demonstrate that right now so if you have a block layout a library and I have two types of custom blocks you can create blocks of any type the one I'm about to demonstrate is it's an entity reference block speech and class 5's you don't have to create a view for this anymore create I've created this I'm actually going to go back and create a block type again so you can see that process I'm going to add a custom block type it's a type I'm going to create this as a content limit it to a certain type just like I had before I'm going to limit it to the class 5 add type I'm going to sort pretty simple now I'm going to go back to your custom block of the test type you can see down here I can add not to second I'm going to take my let's go back this is what I I'm taking another instance of my class 5's pull up any of the class 5 add content types this when I can go position this anywhere this is the page manager interface I had a variance here and one of the things that differentiates a panel page versus a block page is this right here that it gives you control over the layout with all these layouts you can choose from one thing which is not fully fleshed out is if you change the layout you say you go from a 1 column layout to a 3 column layout there's no invitation to move the content from the 1 column into any of the other columns let's find out what the cost is let's say that's in the first column that's in the first column so I'm going to add a new block this one title now you can see it's jammed that in there this one here and I could have put something in the right column but it didn't so that also space sweep space I didn't do any of these in any complicated layouts reset your let's say in the full content I wanted to put things into two columns save here we have the the panel doesn't have this yet I hope to be able to make the content in the left and of course save so now whenever you want to view a given node I have a login so do you have any questions about the new GUI at this point let's start with you sorry one more time okay actually that's the way we built sites before we knew that entity queue was available so we had pages that were referencing different blocks in order to be able to position blocks in a specific order yeah this is your version of entity queue for jubilee version? yes so just like jubilee 7 there are many ways to get there there are some solutions for clicking some for clicking you can use entity queue you can use custom lock type it also comes down to what you and your team agree on what you prefer there will be throws and comms at every approach I think it comes down to entity queue provides additional functionality in terms of having a limit and automatically adding and removing items and this will be like a manual approach if the manual approach suffices your requirements it's perfectly valid to not depend on an additional module or just implement it with your report which will be easier to maintain in the long term more questions about the stock of the template yes sir when you work in different environment in deploying the blocks I'm currently certain that almost everything is turned into a no so we have to differentiate between configuration or content and the block so when we go into the UI here of the structure block layout what is configuration is definitely the different block types for example so when I go into types everything that Adam has configured as different block types there is a configuration and those are easily deployable but the actual instances when I add a custom block that to the system is content so it's not supported by CMI to be exported another like the deployable but I've never I haven't tried that yet so they are two kind of block and when it gets interesting when you build a landing page with panels or page manager because the landing page itself is configuration and then it adds instances of block content what it does there is that when you deploy the CMI configuration it will just create empty place for that content that you refer to with the same URL but it does not deploy the content for you very good session especially because once it has come the version always arises of all the panels when you deploy well, two countries can you give glasses to content in the company? yes you can it's not a module yet but there is a it's up on github I can find the URL for you call you mind and show me this it's all block attributes and what it allows you to do here it is, yaml configuration you can add attributes to any block this is very similar, I mentioned this earlier it's very similar to team markup, team markup blocks, team markup panels as part of the developer this is something that I rely on a lot because I don't like using pain, display blah blah, a bunch of like numbers and letters, I want to actually have semantic naming in my themes so this will allow you to do just exactly that let's say you have a block you can create a block, dash dash my special block, call whatever you want and then this is also it's part of the block wrapper and I assume they are part of the configuration and when you deploy it will also move up do I have extra questions there? 7 the context we can't do it from the context I'm sorry, from the GUI right now from the GUI, just add a glass to a particular pane from the GUI you will be able this is, you can edit this configuration from the GUI I believe but I have not yet tried it yet I personally have tried it and I'm sort of missing the full case and that's right now one more question, a paragraph this is a really new invention I will see in a little bit like you can go on and on and on and add content to it just your skills of creating paragraph types is the main thing but if you see view mode selected I want you to view that entity view mode selector? no I'm not familiar that comes handy while you are adding a particular paragraph item as you choose view mode I say yes, I say exactly what you are talking about that module is also in there right now particularly thank you, I've been looking for that that was sort of according to me a missing point in the presentation that's a really important knowledge of any paragraph items thank you nice cool yeah actually was also the question about the deployment let's see if we have more questions we're going to have more questions and we're just going to talk through what we already covered and then we'll be able to last the time for the questions we're just going to quickly review what we've learned so far including just splitting each of the strengths and weaknesses I think we can see that my approach is the best of the situation and what that means is really depends on who you're working with and what their preferences are there's a lot of people to consider there's a I think many of you are do many, many wear many hats and you might have some of you have a stronger front-end approach you have a stronger thinking approach and you have to work with your team members decide how you as a group are going to tackle a given project because ultimately if you're with your teammates and you do it one way and they want it another way that gets messy you should plan ahead of time and ideally across projects have the same strategy it's worthwhile taking some time and figuring out a group-wide approach so the bottom line is that there are a lot of ways to scan a count and like I said teamwork it gets stuck so it comes down to coding and clicking there's no one approach you can't decide building entirely from and every process and you can't do it entirely you need both so the good news is that for people with football 7 experience much of your knowledge is irrelevant most of the modules are there like we have seen that the context model is not available but if you're familiar with this place read or the penalty ecosystem you will find the same stuff in football and football and it also lasts to new information to learn and create some tasks there's lots of extra things you can do you can filter content that's coming in it's much easier to access things etc those of you who know about Twain it's incredibly powerful as a company engine there's the endless impacts we had block attributes which is a new thing for all of us and blocks lots of block types and so on a lot more powerful in a lot of different ways so the good news is you don't have to throw the baby out in the bathwater this is an English question do you guys know this question? it's just creative about that so we learned a lot and now we have 10 more minutes for questions so the first question this session so my question is that you said that we can figure out a set of layouts using the GUI out to be and Google 8 core is in itself responsive so is the layout Milagini's responsive in Google 8? the layouts themselves are probably not necessarily responsive they're probably just a fixed set they probably do not have great points included are you also a frontender? are you familiar with the Singularity library? Singularity Singularity is a library that allows you to create a code similar to SUSE it is a great framework that you can create your own layouts and great points at Forum 1 we have a library of different layouts left sidebar, right sidebar all sorts of different layouts I can show you on my laptop I think we can use SUSE and other frameworks to create a custom layout and incorporate them to make them responsive and if you put them in the right spot in the architecture you can access them in panels in this place you can access them anywhere and then you have content that as you're building your site the layout by itself is just a definition of which regions there are and then it can attach to visas the good thing is that the layouts can also be defined by a theme because with all the new grid frameworks you don't want to have the layouts split up too wide because then you cannot depend on the same source variables for example so my suggestion is that the layout itself just defines the structure and your theme puts on the responsive layout on top of that thank you one more question one more what's the biggest pain point with layouts in general what's the biggest pain in layouts in general you put in too much too much markup yes so maybe to follow up on the too much markup hello sir let's just I could follow up on the well the good thing about Drupal 8 is that everything is controlled by a template so you will find a lot more possibilities to make the markup cleaner and also it has already been a lot of efforts in Drupal 8 to make the markup less than required so and there's also the cloud like there's a new probably it was mentioned in another frontend session so the way that the theme system is built in Drupal 8 you can have templates with as little markup as needed and you can have the classy templates that will provide a bit more robust markup to be able to target more so it's it's not as much better now yes banana yes sir well first of all thank you thank you for telling me something that Drupal 8 is more of something that is controlled by templates sir I'm in the background I'm used to Drupal 8 there's not a lot of Drupal 7 at all but I'm trying to know how much is possible to the profits we deliver we test slices and we try to code it and we try to make it the best I go together I think that depends on your approach in your design environment I'll use this one I think it depends on how well the frontend developers and the designers can communicate I work very heavily with my designer and UX person the wireframes to think in components to that end we use a tool called pattern lab where things are broken down into atoms complex molecules, complex view modes or layouts, complex pages and so that I'm really working with the designer I want a whole PSD but I also want them to see what they have here, this is an atom this is a search bar for example, it has two atoms it has the text field and it has the button it's a molecule and I want that to, I want to even theme that in a way that that exists the same markup will look when I have, in a sidebar will look this small and when it's across the top of a large page it'll fill up the space I want the CSS to do that out of the box I don't want to have separate CSS because the structure should be the same and it should expand and fill the space then you have to, it takes time to build a relationship with your design team to have them to start to think like this is a paradigm shift for them if they're used to just, sorry if your design teams are just spinning out these beautiful designs that aren't thinking about how it lays out you as a front-ender have to be the nice police and help them learn how to start to think more in components because it helps everyone, ultimately otherwise, you're just trying to it's not, it gets messy I'm not saying that at all I'm saying that it's important ultimately websites exist in my association to deliver content no matter how it looks and users want to get to a website and they, it's great if it's pretty and it needs to be pretty, it's marketing and branding, all are important but if a user can't find what they're looking for quickly they will leave your website and so, it's good to be creative and it's good to be innovative but sometimes to be leading edge and to design, I think you can choose yourself on the foot that's it, it's also possible no matter what the design the structure that works any design is the model I've had to do some tough stuff and does that answer your question I think it's fuzzy I think there's no real hard hard and fast answer to just to, how do you cut up a page you know, it's a whole different thing I like referring to the design systems we don't just create websites but underlying there's content management system, there's framework so also the design in the end should follow a systematic approach in order to be to not work with hacks on every single page but to start from usable, like the molecules the atoms about that kind of metaphors help us communicate, create something that follows patterns and makes it more concise and also in the end more usable for the end user that's one of the strong advantages of using as a front-end or something like I don't know because it helps you work browser you work in pair with your designer and you can you help them see how things are structured in a structured, library way and I think ultimately it results in cleaner looking websites especially when you're dealing with large large quantities of content and many many types so any more questions oh yes hello so I'm working on a duplicate project right now so I had to make a custom for my customer the thing was that I wanted to ask you a question that creating a quick file for that custom form overrides my custom piece say the one more time I am having a custom form if I make a quick file for my custom form then it overrides all the functionalities of my custom piece right if you need to get the functionality of your custom form you have to render it through your quick files so what approach do I have to follow for this thing what are you trying to accomplish okay I have a custom form I need to a compact form a simple custom form any form any form and if I want to theme it according to my customer I need to have a template file for that to give them the CSS already started so which approach should I follow which is to make a introduce all those devs CSS classes within my controller or my form or use a template so if the CSS is sufficient then I would try to not adapt the markup at all but if you have to adapt the markup then implement the template for that form because if I implement it with a quick it will overwrite all my custom template so you want to target this specific form and not all the other forms yes if you make the code update a bad coding system if I introduce all those in custom then it will sign in your mic my instinct would be to use twig and extend the general form template and using the twig template suggestions figure out what you need to name it so that it targets that and then add an additional class into the top level form or html element or the top level div and then let everything cascade it's a lot of overhanging when you know it suggestions for any for any custom pages or forms it overrides all your things usually it depends on the specificity of the template that you implement general form template then using the the suggestions system it also allows you to implement specific templates for specific form types for specific form instances so you can enable the twig debug system and then it will tell you which of the templates you can implement and if you don't have a specific suggestion available you can also implement a hook to add your own custom suggestions thank you thank you so we want to thank you all for attending if you all would be so kind you can see the good link for the evaluation it takes you to our session page and it would be great if you would go and write nice things about this and it will tell us the truth or tell us what you better and the slides as you can see they are on the slides and please stay in touch reach out here's your information and there's mine and really thank you all for your time and attention and I hope you enjoy the rest of your GoogleCon thank you