and welcome to another episode of Critical Conversations where we discuss hot topic issues related to the Muslim world. Past discussions have focused on social, religious, and political trends. And in this conversation, we'll add a new dimension to that conversation, namely the environment, in particular the impact of climate change on the Middle East. Our guest today is Professor Greg White of Smith College. Dr. White is the Mary Huggins Gamble Professor of government, the current chair of the government department, and a member of the Environmental Science and Policy Program Committee. He teaches courses on global environmental politics, international relations, migration and refugee politics, and international political economy. Dr. White's research and publications focus on Moroccan politics, environmental politics, and international security. Professor White, welcome to the program today. Thank you very much. It's a true pleasure to be here. Thank you. To start, if you could just please give an overview of this issue. What are the major implications of climate change in order of significance on daily life in the Middle East? And what have we seen already, and what are projected impacts? Of course, I mean, it goes without saying that's a very complicated question, but it's a good one, because the change in the past to this moment has been profound. It's been very, very significant throughout the region. I think one of the key things to think about when we look at the Middle East and North Africa and the Mediterranean Basin, is that you're looking at a part of the globe that is at 30 degrees north of the equator. And if you go all the way around the globe, it's basically going to take you around to all the major deserts in the world. So the United States and the Southwest, that's the Mojave Desert and the American Southwest. Over to the east, you have the Gobi Desert. And of course, where North Africa and the Middle East is, you have the Sahara going over to the Arabian Desert. So it's a very challenged region to begin with in terms of where it's positioned in the globe and the kind of climatic weather patterns it has and its natural attributes.  Rising temperature, decreased rainfall, rising sea levels on coastal regions, which leads to salinization of groundwater. So the change in the region has been quite profound to this day. And looking forward, looking into the future, projections are significantly worrisome as they are for these other parts of the globe that I already mentioned as well. I might add the 30 degrees south is also the deserts of the south, the Atacama Desert in Chile, the Kalahari Desert in Southern Africa and the Great Outback in Australia. So this is a really troubled band of the globe and this is where the Middle East and North Africa is positioned. And all the projections going forward are whether they be from moderate, medium range increases to severe increases of temperature, decreases in rainfall, increases in severe weather events, it's very concerning. It's a very challenged region to put it mildly. As we look about this band, roughly how many people, just if you size it, if the United States is 330 million people, how big a group of people are in this zone? Off the top of my head, I don't know. That's a really good question and that's something that I should know more readily. It's, I would guess in the order 400 million, 500 million, it depends what you consider to be part of the region. How far into Africa, for example, you range, whether it's the Sahara and then the Sahel that's to the south of the Sahara and then in the Eastern Mediterranean, same thing, what you consider to be part of the region. The short answer is that it's extremely populous and what's also significant about the population in the region is that demographically, it tends to be very young, which has to do with a whole complicated range of factors having to do with the kinds of development that the region has experienced. So demographically, it's challenged with this young population and very populous in turn. There's significant strain and stress on economic and social systems because of the large size of the population. So bigger than the United States, just using that as our measuring rod? For sure, absolutely. Bigger than the European market, which is 350, 400 million, absolutely. It's very populous indeed. And do you think just for curiosity sake, how, what is the issue in terms of the climate that is impacting the most people in this region right now? I think in one word, it's water. It's potable water, it's drinkable water, and as well as water for agricultural use. As well as water for industrial use because after all, so much water is used in industrial processes as well. So any effort to pursue economic development or economic growth requires significant water inputs into industry, into agriculture, and then of course into people's lives to exist. So as temperature increases, that increases rates of evaporation. As rainfall becomes more episodic and less prevalent, that similarly is a real issue. So yeah, in a word, water, and the effects that it has in the region. And I mentioned too that the groundwater is often salinated because of encroaching seas and evaporation again. So there's just the ability to find good, fresh water. It has bedeviled the region forever, for millennia has been a long-standing problem for this region as with any desertified region. But it's especially so in recent decades and moving forward as expected to be the case. And that's where I think climate change is so central as an issue. Obviously, I mean, that's our main concern and it's profound. But I think at the same time, we have to take into account policies that don't consider the realities of a kind of water-stressed region like this. So for example, in so many countries, they have tried to pursue the growth of crops for export, like citrus or tomatoes or grapes for wine. This is especially the case in North Africa, but it's also the case in even war-torn Yemen. You're trying to grow crops for export to international markets because they're lucrative and they bring back important foreign exchange, but those crops have a high water demand. Or if you try to develop your tourism, which is a significant part of the Jordanian economy or the Egyptian economy or the Moroccan economy, tourists like to take showers and they like swimming pools and they wanna go golfing. And in Marrakesh, outside Marrakesh in Morocco, they have water parks they've constructed for tourists. And it's laughable, it's preposterous, right? It's that kind of, how could that be in a region of the country that's arid? It's not desert in Marrakesh, but it's very arid. And it's a preposterous development strategy, if you will. And yet that's what they do to try to attract tourists. You had earlier mentioned Yemen, and if we think about Yemen, and we think about the Middle East generally, it's a conflict-prone area. Is it clear, this is going to be an added stressor on an already stressed region. Can you sort of prognosticate, is it clear what's going to happen or? A prediction, right? Yeah, I think it's hard to know. If I had a crystal ball, it would be fantastic if we were to have one. But it's definitely hard to know, but we can expect it to be extra challenging. It's certainly very challenging for a region. As Yemen, hopefully, I mean, it's hard, as you would try to be optimistic that somehow the conflict will come to a close at some point in the future. Who knows when? It doesn't seem to be in the near horizon. But when it does come to a close, environmental stress, water, all these kinds of issues certainly hamper post-conflict reconstruction. It's really hard to rebuild a society when you are dealing with scarcity of water and challenges for growing food for the population. So it can only exacerbate an already difficult situation. When you talk about recovering from these issues or forming economies around these issues in ways that are more sustainable and renewable, this region in particular, I'm sure there are so many difficulties to that because it's one of the world's biggest producers of oil too, which is its own issue. But within this sense, how does the oil economy of the Gulf region and the Gulf States impact this region's response to potential climate-induced conflict? And politically and just economically, and are there positive trends that you see in this region? I'll set aside the positive trends. Maybe no, is a quick answer to that. So maybe I'm not sending this side. I think the answer is no. The fact that so many of the economies in the region are dependent on oil has been a real curse, if you will. I mean, it's that old label, the resource curse. These countries have the resource paradox, the resource curse. The founder of OPEC, Venezuelan, by the name of Perez, said that we are drowning in La Mier de Diablo. We're drowning in the devil's poop. And so this is that oil is a real resource curse for so many countries. And it's very, very rare to find an instance of a country that has, or maybe a state in the case of Alaska, that has taken oil resources and managed them responsibly and in a just fashion. And the Middle East and the countries of the Middle East are no exception in that regard. They've had a real challenge with it. It's caused all kinds of distortions in the ways their economies have developed. Because they rely on the rents, the profits that are derived from the extraction of oil and the selling of oil overseas. And then that just affects the rest of the economy. Sometimes countries have been known to take some of that oil wealth and turn it into social programs and other ways of developing the economy. But it's really hard to do. I think an additional piece of this too is that a lot of the countries in the region when it comes to climate negotiations, whether it be Kyoto 20 years ago or more, well, 20 years ago. And then more recently, Paris, the oil producing nations are often very much aligned against efforts to mitigate greenhouse gas emissions because they see it as a threat to their economic model. So there are strong lobbyers and strong parts of coalitions that work to undermine, if you will, sort of undercut these kinds of negotiations. So it's the kind of economic development that has happened.  Oil implicates all of us, right? We need it. We use it in our own economies around the globe. And so in that ways, citizens around the globe are implicated in the need for oil. But that's a long answer to your question. Is it, how does it complicate it? It definitely does. And moving forward, it's hard to see how, absolutely moving away from oil and reliance on oil for energy production, that it could be improved. And you talk about the impact on people around the globe in terms of an oil economy. But I've also heard that in the countries where oil is the prime, where it's economy based off of oil, primarily, that they tend towards dictatorship. There's something about oil and the fact that it's such a resource that can control the global markets that has impact with the people in those countries too. Is that something that you've seen or can speak to? Wow, that's a trippy question. I mean, that's a really good question, right? Because there are definitely oil economies that are not autocrat, Scotland, Norway. Yeah, I mean, there are Alaska. I mean, it's possible to have an oil economy within a government that doesn't lend toward autocracy. But then, so I guess for me, though, that I wonder if that then leads us to a kind of chicken-egg question. It's hard to know whether oil emerges in, whether oil encourages autocracy, autocratic governments to emerge, or whether autocratic governments, I don't know, are susceptible to developing oil in the way that they do so. I tend to think it's the, if it's one of those two, it's the one where the presence of oil wealth distorts the incentives on the part of the government, and it also leads to support for those governments by external actors, not least European colonial powers and, in turn, the United States in the context of the Cold War, and the close support that the United States and Europe have given to autocratic countries in the region in exchange for stability and extraction of oil. A good example of that, if I could, real quick, is Gaddafi in Libya. For many, many years, especially after 2003, when Gaddafi relinquished WMD, the Weapons of Mass Destruction, he did pretty well by Europe. He would argue that he was doing Europe's work. He was providing Italy and Europe more broadly with natural gas and oil, and he was interdicting migrants coming across from, that might've wanted to go to Europe. And when the NATO, the North Atlantic Treaty Organization began its bombing of Libya in 2011, in March of 2011, Gaddafi was enraged. He felt betrayed that Europe and the United States, that NATO was doing this. After all, I have done for you, you're bombing me now? So it's that sort of bargain that is often made with autocratic leaders. And he felt like he'd kept up his hand inside of the bargain. You talk about, this is almost a paranoid question. Us talking about this, do you think that as people come to realize that this region, maybe perhaps differentially from the rest of the world, will be more severely impacted by climate change? Could we be contributing, even around this table right now, to sort of people taking actions like having tighter borders against people from that region, sort of in anticipation of people fleeing that? Or could it encourage more conflict like we talked about? Or is, you know, there's the other school of thought that would say, yeah, understanding the problem is the first step towards solving the problem. Do you have any line of sight on that? No, and I think I'd be in the latter part of that question, because it's sort of understanding the problem would begin to provide suggestions of the kind of policies that should be pursued, because you're absolutely right. One mode of thought might be to say, well, this is a conflict prone region historically, and it's been thus to the present time, and moving forward, it looks like it's going to continue to be in many, many different parts of the region. So the solution should be a security minded one. Let's build borders, let's pick winners and allies in terms of the factions that are fighting, and try to contain the violence, and try to contain the brewing trouble in the region. And that's certainly a common sort of mode of thinking among policy makers. There's no doubt about it. It's an easy one in some ways to move toward, because it not plays on fears, but just sort of follows the logic, you know, that this is the nature of the situation, and that's what you must do most immediately. There is an immediate logic, isn't there? I think if you take Angela Merkel as an example, sort of took the compassionist route, but as a certain point, the immediate logic of lots of people coming in, is very hard politically to argue against, I think. Yeah, and that's the refugee crisis in 2014, 2015, 2016, and even the last two years, of course, but especially a few years ago in which she did that. Yeah, that has profound implications for European politics and for German politics more directly, absolutely. Of course, at the same time, most of the refugees and people who were displaced in the region stayed within the region. The vast bulk did not move out of the region, in this case toward Europe. But I think that, back to your question, it was a really good one, because it's the idea that there has to be ways, that creative solutions have to be found to begin the process of backing out of the situation as it is right now. So that's why we, sitting around this table, sort of thing, we have to move toward mitigation. We have to reduce the amount of greenhouse gases that are going into the atmosphere. We have to move toward renewables and removing the incentives for the production of this kind of oil that affects the economic development and affects the climate. So there has to be mitigation efforts and there has to be adaptation efforts. So rather than building borders and hardening security, work with governments in the region on their adaptation to already existing climate change. Encourage them not to build these kinds of water parks to be flip about it. Encourage them to figure out ways to make their populations resilient to increasing temperatures and less rainfall. If I'm not mistaken, there actually is a thousand foot ski slope in Saudi Arabia, just to... In the Gulf, yeah, it's an indoor slope. Same idea, obviously profoundly energy-intensive to power that. Now they have the oil to do so. They can certainly do it. But then there are some bright spots in the horizon. For example, the use of solar power is becoming more and more common in Morocco. There are in North Africa and in the Gulf as well, there are solar arrays that are significant and that technology is improving and that can be expanded on. I would hope, I would argue, and would push for. We'll knock on wood. To continue, yeah, to continue this talk about the opportunities, if you will, within this kind of issue. What do you think, is there any risk in, or opportunities in using climate change, conflict data and research to reframe internal conflicts as shared external problems, which involve fashions can work together to solve? Because oftentimes when there's a larger issue that two groups have to combat, it's that that can maybe work out internally to both of their benefit in some way. Yeah, this is the challenge in the scholarship and the scholarly literature on this. This is one of the situations where we end up saying, on the one hand, on the other hand, it's really unclear. Believe me, it won't surprise you both to know that the scholars have spent a lot of ink on this and published a bunch on these kinds of issues and made a lot of studies. What we have is we have a lot of data about scarcity and environmental change. And we also have a lot of data about conflict. And when you take those two data sets and you put them together to see if there's a correlation between increasing scarcity and increasing conflict, the findings are really divergent. I mean, there are some studies that say, yeah, increasing environmental scarcity leads to more conflict. And then there are others that say to the contrary. And the logic for the second group is that because there's scarcity, that actually diminishes conflict because in order for people to fight in order for people to have conflict, they have to have resources, they have to have strength, they have to have the ability to do that. And in the context of scarcity, that ability is diminished. So we have these kind of conflicting arguments. And then what people do, again, this won't surprise you, is they do meta studies. They do studies of studies. And this is not unlike epidemiological literature on healthcare matters, trying to figure out what's to be found. And in that instance, same thing. There are some meta studies that show that it's connection and there's some that show that there's no connection. And so for me, what that leads me to think is that what we have to do is we have to keep climate change as kind of an environmental change as a background sort of context. As this sort of situation, it's real, it's happening, and it has to be addressed. But in terms of the conflict, the direct conflict itself, other approaches have to be pushed. You have to push for diplomacy. You have to push for economic development. You have to encourage all kinds of ways of trying to diminish conflict rather than saying the environment's getting worse and it's bad and it's going to cause more conflict. So, well, we might as well just prepare for the conflict. So that's the logic that I think is very circular and leaves us down to sort of a kind of thinking that doesn't take us out of the, you know, fruitful attempts to try to find fruitful solutions. Yeah, almost Armageddon becomes a self-fulfilling Armageddon.  Yeah, and that kind of apocalyptic thinking or a catastrophist thinking leads to a kind of policy stance that is back to the security piece. You know, it's all about security and conflict. And I think that's the worst part for me. But isn't there an opportunity also to think about, you talked about economic development as a way to kind of secure the region a little bit more? Isn't there hope in the fact that, like, eventually we will all need to transition our economies and, you know, innovate to address this issue? And so if this region is kind of having to do that maybe a little faster than other parts of the world, isn't there a little, aren't there opportunities in that? Can't they kind of become the leaders in this or, you know, they're beheld to oil or there, but is there some opportunity with this in terms of economic development and this issue? And yeah, it's a really good question because I think that there are people on the ground in the region. Again, I'm more familiar with North Africa. There are people on the ground who get it. I mean, they understand that, you know, it's getting warmer. They understand that it's harder to grow crops, that it's harder to get clean water. In Morocco, there are rural women in the Middle Atlas who are working to obtain clean water. And they protest, they clamor for it and they create all kinds of inventive ways of retaining water and storing water. So they are working on it, they're working to adapt to it. I think those of us sitting around the table need to support that. And we need to support governments that in turn will support that and rather than governments that will pursue economic policies that are, you know, more beneficial to affluent groups and kind of a bad development, a maldevelopment, a poorly designed development. You know, as we sort of come to the close of what's this kind of fascinating discussion that it's good to think that there's something that we can do, that we three and those people that actually watch our conversation. And do you think, is there hope? I guess that's my bottom line question. I think so, and I mean, I would turn to leave too. I mean, I'd like to think there's hope. You have to, if that's why my concern is if people move in that apocalyptic or it's just gonna get worse and worse and worse, then the solution is survivalism. But if you say, no, there's gotta be ways of getting out of this. You know, people are not going to disappear in the next 10, 20, 40, 60, 80 years. Let's make it better. I think that's the kind of mode that we have to move in. And again, I would turn to you as a young person. You know, what's your take? I am hopeful, but I think I'm also naive. And that's why we have you, because when this issue is studied, and I think that also comes back to what you're saying, is that when there's more information about an issue, that future generations, even if a current generation can't solve it, but a future generation will have more tools to do so with historical analysis or just looking at trends. And so I think that hope can bring about change, but also I think that the data needs to be there too. So I think that both generations and all facets of society can provide that if we focus on it. Yeah, I think if we can just recognize what the problem is, which we're struggling with here, and evidently, I was sorry to hear there, I think there's hope. But I, for one, no longer talk about climate change affecting my grandkids, it's affecting grandpa. And that's as it should be, in a way. Well, thank you very much for being here today. And actually, Leif, I wanna thank you for actually making this connection. It's not every high school student that has the thought to bring together these resources on this project. Thanks very much. Thank you very much.


The Royal Central Police Force wishes to report a relatively incident-free Carnival Monday and Tuesday, that is the 18th and 19th of July 2022. Leading up to the official celebration of the activity, that's the weekend, the police marine unit responded to several incidents over our territorial waters and one individual was arrested for dangerous maneuvering. That individual actually boarded another vessel, he was the captain of one vessel and boarded another vessel without the express consent of the captain of that other vessel. He thereafter stole items from that vessel and has been arrested and will be charged subsequently for the set offences. Monday and Tuesday saw a very large turnout of police officers with a deployment of 265 regular police officers, 12 RSS members and 64 special services unit officers. These officers were deployed for various activities including traffic direction, security of various locations, management of the bands, the parade of the bands and other security-related activities. For the most part, these activities were uneventful with just a few incidents of this oddly conduct. One individual was arrested however after he was found in possession of a .380 pistol and three rounds of ammunition. The individual is a 28-year-old male resident of Cedar's castries and as such of his residence actually had officers recovering additional rounds of ammunition. He is in police custody pending charge. We can also report that over 50 prohibited weapons and that's inclusive of knives and scissors were confiscated by officers over the two days of activities. The Commissioner of Police Milton Daisy wishes to thank all the officers who turned up for duty over the course of the weekend, the night activities and in particular Carnival Monday and Tuesday. He also wishes to extend gratitude to the members of the public for their general cooperation through the course of the celebration. Again, thank you. I don't know how to end.


Hello, beautiful souls. Welcome to this Energy Update video for November 2023. My name is Ona Christie. In this video, I'm going to be sharing some downloads and insights about the energies of November 2023. We're going to start with some of the astrological events and downloads around those. I'm going to share an Akashic message for November 2023 and then we'll pull a few cards from my spirit animal awareness deck with the intention of supporting us through this month. Oh, right. So beginning in like the beginning of November, one thing I want to do is back up a little bit and take a little bit bigger picture and look at the period of time that we're just exiting or if you're watching this video we're still going to be in it and that's the eclipse season of late the second half of October 2023 in November. We're just going to come out of this really, really powerful period of time of these eclipses and there's something very, very transformational about this eclipse period. I did just post a video about that so if you'd like to go review that it might be helpful in understanding the energies of November as well. But in short eclipses have a lot to do with concealment and revealment and it just feels like there's been a lot of kind of suppressed energy not just over this eclipse season but throughout the past I'll say about six months or so six or seven months it just feels like there's been a lot of energy on hold and coming into November it feels like there's a lot that will have been integrated or kind of worked through and November begins a brand new cycle in a lot of ways that is going to help to accelerate what's going on in the world and for good or bad or indifferent we've got a lot going on in the world and it really feels to me like things are going to really start ramping up either right now in November or as seeds being sown in November for things to really ramp up later in the year or next year. Like we all know there's a lot going on in world events and we can probably expect to see that escalate but also within ourselves and and it's really really important because we're we're going to be we are being inundated with a lot of kind of disturbing negative news and so forth but it's really important to remember the law of polarity is that everything comes in in twos right and and so even though there's a lot of attention being focused on the negative polarity right now of what's going on in the world it's really important to remember that there is also a positive polarity that's going on and I feel like a lot of us can really tap into that you may be starting to feel this accelerated sense of purpose I'm hearing a lot of that from light workers and star seeds this feeling like oh my gosh I'm finally things are coming together I'm finally really realizing my purpose or ready to step in my purpose or I'm feeling the sense of things are going to start to really move for me and I feel like that is you know there's there's a certain group of people here on the planet right now that that is really going to be true starting here in November that things are going to accelerate in a very exciting way right in a good way this could be just coming a lot more clear with your your spiritual understanding we're clear on your purpose if you have life's work that may start to really accelerate if you're in business that may start to pick up but this is just my gut feeling that's going to start in November and just keep accelerating as we move into 2024 okay so let's take a few glimpse at a few things in November 2023 astrologically of course I just mentioned we're leaving the eclipse window and also the sun just moved into Scorpio okay so Scorpio of course is this sign of kind of going into the depths right the Scorpio themes include like death the deep unconscious sexuality the shadow right power and transformation so anything that you've been working through with the the the eclipse season the beginning part of November you may be continuing to kind of work through those things although it feels to me like anything that was kind of on hold over the eclipse season may actually break through right as we move through Scorpio season this is also a really opportune time for shadow work okay the Scorpio amongst other things is the ruler of death right and and but it's really important to remember that death in in cosmic terms is is not an ending it's part of the cycle okay and it's a prerequisite for resurrection you can't have resurrection without death and this time of year has always been thinking just about every culture associated with death and the death process also connecting with ancestors so um the wonderful wonderful month right now to connect with the departed or to honor them or to reach out to you know your ancestors or any um departed people in your life and really connect with them in your heart you can ask them you know we're here as souls right on the earth but you know these people do not leave us once they pass over to the other side in fact in some ways they can often help us more from the other side because they are in the state of oneness right and can you know help us to resolve things or even work with us to help resolve things that they couldn't resolve on that other side so there's a lot to that working with the ancestors um but this is a really beautiful month to do that just make sure that you pull your your spiritual protection around you if you do decide to do that kind of work um that's that's really important in fact spiritual protection right now is is really well advised on all fronts um a few ways to do that is again calling in your your spirit team around you creating shields or bubbles of protection and also just working on your light coming into the heart space more and really working on raising your own vibration is one of the best ways to to help to deflect anything out there that wants to cling or to um grab onto your field okay so um moving on to another couple astrological events in November 2023 um on November 4th the planet Saturn goes direct in the sign of Pisces and I really want to mention this because Saturn is kind of like Scorpio has a lot to do with the shadow I think of it as a teacher planet um and it can be you know it can teach in ways that are like the shadow coming forward is a means of teaching right because it shows us where the light is not okay and here as it it's been in retrograde for a while but now it's going direct which means that Saturn like my interpretation of it is that Saturn may be really showing up in the areas that Pisces is connected with and that is a deep spirituality um it's dreams are dreams right and are even hopes and aspirations it's a creativity and on the shadow side it can be kind of getting lost in illusion right or or falling into addictions so Saturn going direct here um on the one hand if you are not willing to stand up and take responsibility for yourself it can kind of create situations where you might be falling into addictions or falling into kind of overly dreaminess um but what that really is is a an encouragement to wake up right and to step up and take responsibility so um when Pisces is able to overcome the sense of kind of wanting to just not have much framework when Pisces is able to to stand up and start taking responsibility it's a kusub or a powerful sign for accessing your intuition for um allowing yourself to get into the flow um that could be a really creative sign so this is just something to watch for any tendencies to kind of be lackluster or to just not want to direct things or or not to want to take responsibility so just kind of especially if you're a Pisces or if you have a lot of mutable signs in your charge just kind of keep in mind that structure isn't always confining sometimes structure is what we need in order for us to bloom okay I love the analogy of the rose bush and the trellis in order for the rose to really climb and bloom it needs that structure that trellis and that's what Saturn can sometimes help us with is to show us where we need a little more um structure um moving forward in November we'll have the 1111 portal um and I that could usher in a whole new wave of awakenings and just watch for a video because I think I probably will um record a video about the 1111 portal um but I haven't really looked into that yet so from the 1111 we go on to November 22nd which is sort of a harmonic of the 1111 and that's when Sun enters Sagittarius also on that date latter part of November um we are likely we'll have moved completely out of that shadow of the eclipse and we're also entering into the more energized fire sign of Sagittarius so here's where things may really start to pick up we'll also have a full moon in Gemini on November 27th so things could feel very animated um that could feel like a kind of party central of course we're also going into the into the holidays but it can also maybe an accelerated time of connecting or of communication it might feel a little scattered though too so back to that structure right okay so um I did consult my inner guidance my caution guides asking for a message for November 2023 to assist all of us here in the collective in stepping onto our highest timeline in this month and here is the message I'm just going to read it to you they said quill your fear eliminate distraction the shift is accelerating each human being has a role to play be aware of what is going on around you but do not get caught up in it you are responsible for your own actions your actions stem from the vibration you hold mind your vibration your first and most important duty is to maintain coherence in your field be deliberate prioritize your actions take one thing at a time and do not try to be everything to everyone your soul knows its purpose if you are not yet aware of it then get quiet and ask come to stillness and listen the truth shall be revealed to you okay so here again it's sort of a an encouragement to step back and create structure for yourself right and to be very aware and clear about why you're here and also I love that ending if you're not aware of your purpose get quiet and ask your soul knows exactly why you're here right and so um if you're still unclear on your purpose don't worry about it right just know that your soul knows and that all you really have to do is get quiet and even if you know you're still not clear on your purpose just ask what your next steps are for your highest good right and you'll be shown and eventually that will show you the way to your purpose if you're already very clear on your purpose uh again we can just ask for next steps and just you know make sure that we're really focused on what we're doing there are so many distractions out there that it's really really easy to get pulled one way or the other especially with all the emotional issues going on I kind of feel like part of this message that came through was like I'll just put the blinders on right um because there's only so much that we can do but we're going to be most effective doing what our soul is calling us to do one thing at a time right rather than expending a lot of energy on things that we can't really do a whole lot directly to help just by holding higher vibration and maintaining our vibration maintaining the self-care so that we can can hold a higher vibration of who we are that's going to be the best thing that we can do to help all situations out there okay and and so let's end this video with a reading I am going to be using my spirit animal awareness deck and I will be pulling I don't know probably one between one and three cards just to support us in accessing our highest truth and speaking our truth and maintaining a high vibration throughout this month of November 2023 the first card that's coming up is ferret and ferret is a real warrior animal this is a black-footed ferret and they they have been considered an endangered animal but they're really still hanging in there and ferret is a great animal for scorpio season right because they're the ones that really they go down into the depths into the earth into the burrows and they are not afraid to go out and just dig things out to ferret out right so a great time for doing shadow work right now especially as it's scorpio season um and do it fearlessly remember the first words of that akashic message quell your fear there's nothing to be afraid of okay because we are eternal immortal souls within a mortal body and just keep that in mind we are divine beings and when we really connect with that divine part of ourselves right and then we can go after and really go after the truth right really go after the truth so um positive attitude is one of the attributes of ferret um and confidence and also energy clearing is one of the keywords so keep tabs on your own vibration anywhere where you feel your vibration is wavering or a little low go in there and bring in the light in whatever way if you're not sure how to do it go within and ask and you'll be shown the next steps to do that um shadow side of ferret is that it can be kind of devious or posturing or um kind of a manipulative or sneaky kind of character so we want to be sure that we stay in the truth right and um if you hear rumors about anything or anybody really take them with a grain of salt right don't go repeating information that you've heard unless you've really really checked uh checked on it and one one way to to check on things is to go outside your normal news sources and look for news sources that you know whatever opposite camp that that you don't hang out with see what they're saying about it because you're going to get a totally different perspective and it can really help to um clarify things or to reveal untruths okay so i'm going to pick probably another couple cards i've got two of them here um the first one's bear i love this one bear's been coming forward a lot the past few months um strength power you know confidence and it's also really healing animal and again this is an animal that really pays attention to its own internal cycles and rhythms right so really uh one of the things i'm getting about this month is to really listen listen to your own body listen to the things kind of that are spoken between the words right tune into people's body language or the tone of their voice more so than the words that they may be speaking and you might be surprised some of the most confident seeming people actually may have a lot of fear that's a way one way that you can discern if somebody's actually speaking from a place of fear or if they're actually speaking from a place of truth so um pay attention to those little things in between and then one more card um coming up for november 2023 the card is a dog okay and um dog is wonderful i have a friend that i was just speaking to to today and she showed me this little article card that she created um from her little new yorkshire terrier and it was fun and focus and dog is one of the most focused animals that there is often even right now despite the squirrel right um you know that when like this dog look look at the focus look on his face somebody probably threw just through a tennis ball and he's like whoa look at that um but they they are so focused on you right if you've ever had a dog and you know that they'll sit there and they'll kind of focus on you just so strongly because they've got such love and devotion so the the message here from dog is like what is it that you love what are you devoted to really focus on that and give it your all give it your heart give it everything you have and you're going to be on track for this month okay so um big themes for this month and i want to invite you to really get into your heart listen to it and if you've enjoyed this video please do subscribe and share it because there might be something in here that really resonates with somebody and helps them through this month and beyond so thanks so much for listening love you to pieces and remember you were born to be free


So, yeah, thanks everybody. This is envisioning a design system maintained by the Drupal community. Really excited to be here at Bad Camp. And even if I don't do anything, you've already been inspired today since you're in the inspiration room. But I am Brian Perry. I am a staff software engineer at Pantheon. I am one of the initiative coordinators for Drupal's decoupled menus initiative. I live in the Chicago suburbs. I like Drupal, JavaScript, and Nintendo. And the new trailer for the Mario movie is premiering today. Very exciting. And I'm sure there will be many memes about Chris Pratt's voice as Mario. Also relevant to today's topic, I own the domain webcomponents.wtf. Haven't done anything with it. But I think the fact that I own it is still an accomplishment. I'm on the internet in a variety of places and would love to internet with you. I'll try not to stand in front of the projector here. And as I mentioned, I work for Pantheon. And not all, but many of the things we'll be talking about today, there have been sponsored contributions from Pantheon. A lot of the work that I've been doing since I joined Pantheon is focused on open source projects related to decoupled architectures. And related to that, our front end sites product is in early access. So now you can host your next JS, your Gatsby sites on Pantheon, which is really exciting. And just in general, thanks to Pantheon for sponsoring for me to get out here. So this talk is called Envisioning a Design System Maintained by the Drupal Community. So let's, in this inspiration room, start envisioning. So yeah, we'll be asking a bunch of what if questions to lead us down the road today. So what if there were a set of Drupal friendly components that anybody could use, and they could be used in twig, and they could be used with any JavaScript framework. And it was easy to extend those components or contribute new ones. It sounds awesome to me if that was a thing. So what if web components could make this possible? And specifically talking about web components, whatever you explain what web components the spec is, you've probably already lost. But I'll do it anyway. So this is not necessarily referring to React or View or specific JavaScript frameworks. Web components are a set of web platform APIs making up custom elements, the shadow DOM, and HTML templates. So it's essentially a browser native representation of a component or custom element. And it's not tied to any specific framework. So it doesn't matter what framework is super hot right now, web components will always exist as a core browser technology. So let's actually look at a couple, an example of a card web component in a few different contexts. So this is the card component from the generic Drupal web components library, which we'll talk more about. But in our JavaScript file, we're just importing the library of components and a style sheet. And then in our HTML file, we can use that card component. Gwc-card is the custom element. We're just including it in our markup and passing in a number of attributes to it. The image, headline, body text, the link, etc. And then it takes that and renders it as a card, in the style of a card. And it has its own scope styling as you can see here below. There's just regular markup that has the styles associated, the global styles associated with the DOM. So the styles for this component don't necessarily leak out of it, affecting the rest of your page. All right, so that's just in an HTML document. No fancy JavaScript framework or bundler required. This is that same card component in a Olivero theme in Drupal. It looks the same. The data from Drupal is being passed into the card. Here's a quick look at the pieces that can make that possible. So we define a library that has our style sheet and our JavaScript file for our components. And then in the article teaser template is where we're actually rendering out the card and setting all of the necessary attributes like we saw before. Except we get to use Drupal's twig helper functions to do that. Makes it a little bit easier to do it in a Drupal way. Get out that data and everything. And don't really go into this in this talk since it's breaking news, but there's an issue going around that is the new hotness about a concept for a future version of Drupal of a single directory component concept that really fits nicely into this. It would allow a directory to contain the CSS JavaScript and markup for a thing, which is exactly what's on this screen. So I'm interested to see what happens there. It could make something like this even more pleasant for front-end Drupal developers. So let's see the same component in a fancy JavaScript framework. So this is a view in this case. Just a sample view code sandbox. And here in our script, we're importing the components and the style sheet, just like we saw in all the other examples. And in our view template, we can just use that same custom elements. Exactly the same. The styles are exactly the same. We can use it right in view. Same sort of deal. So, yeah, that idea of literally a component that you can use anywhere is really exciting to me, kind of always been the dream. So some things that I think are pros about web components as a technology. They use core web APIs, as I mentioned. They do now have wide browser support that hasn't always been the case in the long path of web components becoming a real thing. They can use the shadow DOM, which is essentially like a scoped version of the DOM specific to that component, which can give you a lot more control over styling or even JavaScript events. And essentially, you can play traffic pop as far as what does come in and out of your component. And as we saw with some examples, it really does get a lot closer to that right once use anywhere dream that at least I've had. But not without some cons. Things are definitely getting better. Web components are evolving, but there are challenges. So I think a common expectation is that web components are going to be like React, for example. But as a lower level browser technology, it doesn't have the ergonomics of what you might be expected as a developer with something like React. So it doesn't have opinions about bundling, using just plain vanilla web components. There's a lot that you have to do in JavaScript to create elements and structure your component. So there are a number of supporting libraries that make it easier. Lit is one. It's a Google project. From my perspective, it's kind of one-to-one with web components in my head. It's pretty close to the spec, but there's a lot of things that it makes much easier. Then styling can be unintuitive, especially to someone who is not familiar with the shadow DOM in web components. And we'll look at some examples of that as we go on. It's powerful, but it can also be, it's different from what the traditional front end developer is familiar with with styles that are global and affect the whole DOM. Yeah, I kind of already hit on this, but, you know, it doesn't, out of the box, have the developer experience of a framework. You know, it doesn't have necessarily opinions baked in about things like state management and things like that. And there are also some ongoing challenges related to server side rendering of web components. So, you know, this is not necessarily all that different from the JavaScript frameworks, but for a web component to mount on the page, you need JavaScript. There's definitely ways that you can structure your web components so that there is content that will load and display without JavaScript. But you have the fully interactive enhanced element. I really don't want to upgrade Chrome. This is two for two on most recent talks where that has happened. Yeah, so you need JavaScript. There is a new enhancement to web components called declarative shadow DOM that actually provides a way that you can essentially have a representation of your web component that will render without JavaScript. And then when JavaScript mounts, it will enhance the component. So that's gaining browser adoption. Also, the challenge there from the Drupal perspective is that all of the solutions for that are node packages. There's a lot of great tools to make to allow you to easily server render web components in that way. But there really isn't that I can see anyway, a clear solution to how we can do that in PHP or, you know, in Drupal, which doesn't necessarily have node as a dependency. But my personal opinion is that on an infinite time scale, these web components, browser native components, will be an important part of building for the web. But what I don't know is, you know, how much they'll evolve along the way. Are we going to continue down the path that we're on now, where this concept just continues to evolve and, you know, be enhanced and improved? Lately, I'm getting the feeling that that is what's going to happen. Previously, like a year ago, you know, I wasn't so confident. I do think that some sort of browser native component is going to be an important thing about how we build front end sites. But, you know, was it going to be this one? However, I am also very confident that in the short term, web components are going to be a growing part of your your front end bundle, your dependencies, even if you don't know it. More and more, there are going to be things that you can NPM install that just work and the whole component or part of the component is going to be based on this web web component technology. So even if you're not out there trying to, you know, I want to get a web component to do this, you may just have it. And it might be something that, you know, just works in your reactor or view or spelt or whatever project. So I have in the past given a talk specifically focused on web components and my experience learning about them and the challenges and tricks. This is a link to a version of the talk I gave at a past a couple of days. So if you're interested, check that out. So moving on to another what if question. So I mentioned Drupal's decoupled menus initiative. One thing that the initiative took on at a past Drupal con was with a new menu endpoint that was built to try to get people together to essentially do a hackathon and create a variety of different front end components that consumed that menu data. We had some built in react and view. But as I was interested in learning about web components, I wanted to see could I make a menu web component? Excuse me. So we did. And this is it. So, you know, similar to what we saw before where we're importing the JavaScript for the component and importing a style sheet. I'll get down on the level so I don't break my back here. And you'll see the component is rendered on the right hand side. If I expand it, I see items from my main menu. It's in the mobile view. If I change the, so well, I guess to get into the elements here, so the attributes. So there's branding, which is the title of the menu. The base URL is the root URL of your Drupal instance that has the menus endpoint exposed. The menu ID is the machine name of the menu in Drupal. So if I change this to account, is it account? I thought it was account. There you go. So here we just see a link to login. When we're not authenticated, that's the only link that's in the menu. It respects permissions and all of that. So if we just pass another menu ID, it goes, fetches the appropriate menu and spits it out into the component. There's also the concept of a theme attribute here. So this is horizontal. If I don't pass a theme element, it's just a unordered list. But if I bring back the main menu, you'll see that there still is light, expand and collapse. The idea here is that we were trying to create a component that could be restyled and overridden in a bunch of ways. Or we could actually make the theme unstyled, which literally just is an unordered list. If anybody's looking to join, there are seats in the front. I won't bite. Yeah, so that is the component that we built. And I think the concept of being able to kind of abstract away some of the work of talking to Drupal's API, parsing out that data, and just making it a thing that people can plug in, the URL of their Drupal site, specify the menu, and you get a functioning component is really cool. So we started talking about how could we try to build more components in that library? And what we found pretty quickly when we're trying to make more things is that some of the approaches that we took in that menu web component, which really is kind of a proof of concept, didn't scale well when we tried to think about a whole system of components. So let's look at some of those things that were hard to scale. One was the concept of styling. So we kept that component really pretty bare bones and provided some ways that the styles can be overwritten. So what we'll look at here is the storybook for this generic Drupal web components project. And we'll start by looking at the menu web component that we've been talking about. So there are a bunch of different ways that we essentially expose styling hooks and see it's a little blurry here. I don't know if I can make it bigger in a way that will help maybe a little bit. So we exposed a few different styling hooks. So we already saw that there are the different themes that we created an attribute for. So depending on the value of that attribute, it's going to affect the styles that are used inside of the component. There also is a concept of shadow parts. So we talked about the shadow DOM and the fact that styles from outside can't leak in. So outside styles can't affect the component when you're using the shadow DOM for styling unless you allow it to and provide specific hooks. So there's this concept of shadow parts and you can define essentially any element in your component as a part. So I think the parts here is like menu section and menu item. And then that allows them to be styled from the outside. There's a part selector and you can say parts menu section. And that's how we make this pink, blue background, dotted outline, all that stuff. And then there is also the concept of a slot. So there's a default slot, which is essentially just any unnamed element inside of the web component. But you can also create name slots. So if you wanted to have something for the branding like we have here, you can define the slot for that and then it allows you to pass in any markup for that slot that will then be rendered. And that slotted markup is part of the traditional DOM. So the styles for your global page will affect it. So that's the way that you could have some styling that comes in from outside another way. And then here under the documentation, we kind of go into some of these options, many of which we've talked about. Another common approach in these types of web components is using CSS custom properties or CSS variables. And the reason that that can be useful is that, so the one exception to the whole shadow DOM and styling leaking in is things that cascade. So like font declarations and things like that, colors I believe do cascade down to children. Custom properties do the same thing. So you can define these different variables that then do cascade into your web component and you can have the web component take advantage of those variables. So for example, you could set a font stack at the root of your document and it will cascade down to everything, including these web components so that could easily allow your web component to be like, if the document has font set, I'm gonna honor that. And let's see, what else? We talked about theme property, shadow part, slots. You can also, since these are JavaScript classes at the end of the day, you can also extend the class in order to affect the markup that's rendered out, styling, things like that. That's definitely like power user territory, but it's possible. And another thing that you can do, we didn't really find this, we didn't really go with this approach in this library, but you can also just use traditional classes. So you can set a class on your component and within your style, say, if this class exists, these styles will apply. But again, all of those things really are hooks that you have to define. So I'm sure that the styling and the ways to affect the styling of a web component could be an entire talk in and of itself. I'm sure it was tough to catch all that in the run through that I just did. But there's so many options and a lot of them do put too much responsibility, in my opinion, on the consumer of the component. Like think of that menu web component. To make that thing look the way you want it to, to get it to match the rest of your site, it's definitely possible, but it's a lot of work, more work than I would want it to be. So yeah, there are all these approaches that still do require some intent, but are possible. So as we worked on building out more of these components, we started gravitating towards using CSS custom properties, looking at other web component libraries, that seems to be a common approach as well. And we already touched on some of the reasons why I think this makes sense. So CSS custom properties are inherited, so they do pierce the shadow DOM, and it does kind of provide a level playing field, because you can define these properties that will in fact apply to everything on the page. But you still have to take the intentional step of building your component in such a way that it uses those variables. And related to this, something, a library that we found and are taking advantage of in this project is OpenProps. So this is my personal opinion, but I describe OpenProps as kind of tailwind just the good parts. I don't know if you're familiar with that. With tailwind, I definitely understand why many people doing front end work really like tailwind. The thing that I don't really love about tailwind is the kind of atomic classes, the utility classes, that require you to put a whole lot of that in your markup. Reason being for me is just that that's not the way I learn to style things, right? That's not the way my brain works. I can definitely get the job done, but I can do things faster, styling the way that I know how to style. However, the thing that I think is amazing about tailwind is it has a really robust, well-defined set of custom properties, well, design tokens in the case of tailwind. So that's really the main thing that OpenProps provides is a really great set of design tokens as CSS custom properties. That rather than having to figure out what all those things are, figure out the naming, a package like this one can just use it. Yeah, and I think I got to a lot of this, so they provide styles that can be scoped to the regular DOM or the shadow DOM. That actually was an enhancement that we submitted against the library that they added, which is fantastic. And yeah, all the advantages to variables that we talked about, and by kind of incorporating this library into the generic Drupal Web Components project as a whole, it gives a whole kind of well-thought-out system that these components can opt into for theming control. So let's take a quick look at what that actually means. Actually, I'm gonna do it in Storybook again, and we'll look at our card component, the always default kind of general example. But basically, in this library, there are just a set of custom properties that you can allow these components to opt into. You can then use them in the styles or have them just affect things globally. So it gives you a lot of potential control. Simple example, there's a font family custom property that uses the font family values that OpenProps has. So I can change this to a serif font that automatically cascades down to all the stuff, or I can make it mono. And there's long lists, but there's so many things that we can do to, we have the basic structure of this card, but then to tweak it so that it meets our needs. So there is the heading text. We could make that red. We could do something like add a, I don't know, add some padding here to the component and make it even a little bit bigger. Round the corners, give ourselves some border radius. Let's see what else, there's a shadow here. Give it fancy drop shadow. We can even do something terrible like, yeah, eventually you'll combine things in such a way that you can make something ugly, but there's also a set of gradients that are available in OpenProps. So I can just randomly select a gradient that is gonna be very inaccessible. Can I land on one that's kind of okay? That's kind of okay. So obviously made quite a lot of tweaks to this card, still the same general structure, but those are all just custom properties that this card can take advantage of, and you can set them at whatever level you want. You can set those custom properties at the scope of this instance of a card. You can set it for all cards. You could also set them at the root of your DOM and have them cascade all the way down. So, for example, if you wanted all the fonts to be mono, for all of these components, you can just set that at the root and it'll just be taken care of. So thanks to a system like this, I feel like this makes it a lot more achievable for a library like this to have ways to affect the styling to better match an application rather than essentially having to have custom theme controls in every single component. Took a while to get there, but I think it's pretty cool. And let's look at one more quick example of this in practice. So this is a view, the same view example that we saw before that renders the card. If you look carefully, if you have your front end goggles on, maybe a little harder to see in this screen, but the font stack doesn't quite match, right? The default fonts are different from the view fonts. So we have that custom property font family and we can just set it to match the font family that the rest of the app is using. And now it matches the rest of the view app. They're all cascades down. We're setting that at the root of the app. So any other components in this library that are used would pick up the same stuff. So it's a nice low effort shortcut to being able to make these fit into the style of your app. So another what if question, what if these components could work with any data, but actually knew a few things about Drupal. So we have some higher level components that we've worked on, like cards or a hero, within those some lower level things, like links and images. So let's take a look at the link component. So it's a link, not all that exciting. It does have all of those styling controls that we talked about. You can pass in the different attributes of a link, HREF, title, rel, target, et cetera. And it accepts a slot as well. There's not a whole lot of value necessarily in using this link component because you could just use a regular link tag. However, once we start to layer on some light knowledge of the structure of data that comes from Drupal, I feel like something like this could be useful. So there's a couple of examples here that use data that comes from Drupal. So this is just an example of the output of a link field from JSON API. So we have the URI title and there's a couple of different examples, like what does it look like if it's for a referenced entity? What does it look like if it's a link that points outward? So you'll see here that we don't manually pass in HREF for any of that stuff. We just pass in that data object and it's still possible for us to render our link with data from Drupal. So hopefully here that makes it a little bit easier to take fields that come from Drupal with a specific structure and use them alongside these components where otherwise there would probably have to be some work that you have to do, either in like top level state management or within the component to kind of parse that out and get the individual pieces and slot them into all of the attributes. I don't think this is something that would apply to all components but for some of these more atomic elements like a link or an image or things like that. I think this could be really useful. So let's look a little bit more about what's happening behind the scenes here. It's surprisingly somewhat uncomplicated. So in the component there is our render method that renders out the markup and if the data attribute exists if we're passing in data then it runs that process data method and if not it will just return the markup and use the attributes that exist like href, target, et cetera. So if we look at the process data method, really simple, there's definitely some ways that we might be able to abstract this out make it a little bit smarter but all it does is it looks at that data object and if it has a URI it does some light processing on it. So if it's prefixed with entity or internal we need to make some adjustments to make it an actual link that can be used. If the title exists in that object it sets the title attribute and then when it goes back to the render method it will just use those things if they've been set. So that's starting to get a little bit at the data aspect of this but another thing that we ran into pretty quickly looking at these components is what if we wanted to manage application stage across a variety of these components rather than thinking of the one example of just the menu component. So remind everybody of the menu component here and all you have to do is pass in essentially a base URL and the menu ID and this component does the work of talking to Drupal, getting the stuff, parsing it out, rendering it as a menu which is great. And here is a little bit more detail on what's actually happening behind the scenes. So one of the life cycle hooks when the component mounts calls this fetch data method and not the most complicated JavaScript in the world here but it using the base URL and the menu ID it structures, it determines the endpoint that it needs to talk to or the core's upcoming menu endpoint and then it just uses JavaScript fetch to call that endpoint, get the data back, there's light error handling and then it also processes and parses the response so that it is a nice hierarchical structure that you can use. So again, not a ton of logic or JavaScript here but a sum and it's all embedded within the component but really quickly as we try to apply that in other places that concept just doesn't scale somewhat obviously so think of the card that we saw before if you take this approach and you got one card on the page that's one fetch request and you might already have one for your menu if you got 10 cards in a grid that's 10 of them if you have 100 cards or some sort of auto scroll that starts to get pretty problematic and really what you want is a place where this data can live that all of the components can access and share. So that kind of led me on a pretty long tangent away from this project working on a project called Drupal State and this is another thing that I've given a full talk on at past DrupalCon so there's a link there if you want to learn more but at the highest level it's a library that makes it easier to communicate with JSON API and has lightweight state management. So it's framework agnostic so it works in any JavaScript framework or no JavaScript framework at all works on the server and the client and at its like highest level it will if you ask for an object from Drupal's API it will first check local state to see if it's there and then if not it will request it from Drupal's JSON API and then if you ask for it again in the life cycle of the app it will get it from local storage if it exists so that'll cut down on your API calls and also by default it represents the data in a flattened DC realized structure JSON API still is a little nested has some Drupalisms not necessarily what JavaScript developers who are either not familiar with Drupal or not familiar with JSON API expect so that makes it a little bit easier to work with in my opinion. So this is a really super quick example of what that actually looks like in practice so we can import Drupal state and then create an instance of the store so we provide an API base it's also possible to provide an API prefix it's optional by default it's JSON API but if you have your API under some other prefix you can specify it there's a handful of other options that you can use here but that's enough to get you going and then if we wanted to get recipes from the Drupal site that has the umami demo data it's as simple as creating a constant and then store get object and then providing the object name so a node recipe in this case and what that does behind the scenes it calls out to the root of JSON API it figures out what the endpoint for node recipe is and then it will parse all of that data and return it and store it in local state so you'll see here that the result on the right hand side it's nice and flat things aren't nested under attributes or includes like in the traditional JSON API response and then if we ask for a particular recipe after doing that so we provide an ID here it's just gonna get that from the local store since it already has that recipe with that ID and it doesn't have to make another call to Drupal so that utility in and of itself helps for a library like this at the time that we started working on Drupal state there really wasn't and there still really isn't any sort of common set of utilities for talking to JSON API there's nothing under the Drupal namespace on NPM there are a handful of different clients but they all do things differently some have assumptions baked in for specific JavaScript frameworks but having this utility that can interface in a reliable way with JSON API opens up the possibilities for a design system like this so the next step there is how can we continue to make it easier to get data from Drupal when working with components in the system so what if we created a web component that could just source data from Drupal and with Drupal state as a dependency that sort of thing becomes possible so just like we've seen before we're just importing the components in this library and then we created two new components a store component and a provider component so the store is really similar to what we saw when we created the instance of the store in the previous example we specify what the Drupal endpoint is and then any provider inside of that store it's essentially an interface to like that get object request that we saw so it can use the store to get data and store it so if we say here that we wanna get a new recipe with a specific ID and include additional reference entities on it you'll see here that we have a card that renders out so yeah about the card so inside a provider you can use an HTML template which we see here and that can be any valid markup custom elements anything so it can be traditional markup like we see down here so you can just use the HTML that you know and love it could be custom elements from this library it could be any custom elements so there's the outline library from phase two which is another set of Drupal friendly web components there's no reason that you couldn't use the outline components here in the template as well and then as you'll see here in a kind of a twig like double curly braces syntax you can reference variables that are within the scope of the provider and they get rendered out on the screen so like really simple example we have a headline here so we can just say title and now we get our deep Mediterranean quiche and then so this is the one recipe comes back here so it's just rendering out one recipe but if we remove the ID it will iterate over the template for every result so now we see all of the recipes on the site we probably don't need this markup anymore and then since this is all just an HTML templates we can also do things like if we wanted to embed styling in here so we add some light styling for it to use a grid so now we have a two column grid using CSS grid and then also this library recognizes all of those custom properties so we can add a few custom properties to clean up the cards a little bit give them a little bit more of a matching style add some flair to them and all of that really just within markup so this isn't necessarily the only way that you might want to source data from Drupal to use with these components but I think it's really cool that you can do all of this kind of inside just markup or you could use these components separately if you want to so yeah I think we're just about up on time here so a few last things thinking of this generic Drupal web components project if we wanted this project to be sustainable it really in my opinion needs to be a community effort and not a solo project not just because I only have so much time to contribute to it but really if this is going to be a thing that is useful to a lot of front end developers who are using Drupal it needs to represent the needs of a lot of front end developers who are using Drupal there's a meta issue that is just kind of a clearing house for components that people might want to see built there also is in the library a scaffolder probably don't have time to show the example but you can run npm run create component and it scaffolds out a component for you that takes advantage of the styling hooks that we talked about so feel free to just kind of spin it up and experiment we welcome your contributions but also if you're just looking for a way to experiment with web components and lit might be a decent way to do that as well and this last thing so you know I think that if this library is able to continue to evolve I hope that it can be useful another area that I think could be a really important offshoot from this work or just work around web components in general that is a pretty hard problem is server side rendering of web components in PHP we touched on it a little bit before you know these things require JavaScript to mount you know it is not in my opinion an unreasonable expectation that there will be some functionality on your website that requires JavaScript these days however being able to have things server side rendered so that the JavaScript portion is a progressive enhancement is certainly better and as I mentioned there's been a lot of work in the Node community to be able to solve this problem for JavaScript projects but I don't yet see a clear path to how Drupal can solve this and literally render out all of the markup necessary for a web component in its traditional template so that on the initial load all the stuff is there and then the JavaScript part is progressive enhancement if we can solve that problem I think that would be great for Drupal great for PHP projects in general so you know hopefully more to come there and you know up on time but definitely want to thank a handful of contributors who contributed to the menu web component as part of the couple menus initiative we had someone participating in summer of code that contributed some new components others who dropped in and made some useful contributions people who have made a lot of meaningful improvements to Drupal state and I probably missed some people and I mean everybody here thank you for contributing to this inspiration quiet down so yeah I passed time but perhaps if the talk was over and you had questions we might be able to talk about it oh thank you thank you very much thank you thank you yeah any questions if not now I'll certainly be around the next couple of days we'd love to talk more yes how do we get involved do we go to that meta issue yep yeah how to get involved go to that meta issue so it is a Drupal.org project it's a general project on Drupal.org even though it's published on NPM there's issues in the issue queue meta issue great idea to throw ideas out there as interest has begun to increase we also have a Slack channel in Drupal Slack I think it's just generic Drupal web components so people are kind of throwing in ideas there or just general web component learnings can you throw that QR code back up? yeah love it question was can I throw up the QR code and the answer is yes yes are there any accessibility considerations with web components? ah yes are there any accessibility considerations with web components yes I would say that there are not many that are specific to web components but a lot of the considerations that you would have to make for accessibility elsewhere apply so you know the markup that you're creating in your web component should be accessible from a accessibility standpoint there are certainly advantages for the JavaScript piece being a progressive enhancement rather than you know the component does not exist until JavaScript loads things like that but those same sort of problems you know exist with the JavaScript frameworks I'm not aware of I might just not be aware of it but I'm not aware of any web component specific accessibility cool alright thanks everybody and yeah I'll be around when we talk more you're welcome