2018.02.02 20:42 axolotl_peyotlAlternative Conspiracy Sub
This subreddit is intended for reddit users with accounts that are less than four months old and who want to participate on /conspiracy. Users that conduct themselves in good faith on this sub may appeal to the mods to have their two-month limit waived.
This is a forum for free thinking and for discussing issues which have captured your imagination. Please respect other views and opinions, and keep an open mind. Our goal is to create a fairer and more transparent world for a better future.
2024.06.05 10:49 Informal-Baseball498I found out my first gf whom later became my best friend that I have not seen for 11 years died 6 month ago.
Title is a bit weird and needs context. I'm currently 36m found out tonight that my best friend when I was 17-24 died 6month ago. I only randomly stumbled upon it after thinking about moving back to my home town 14,000km away. I decided to search for her name see if I could get in touch with her again I was hoping for a Facebook page but the first link that showed was her obituary... We met at a seasonal job, we chatted during lunch break and eventually we dated, I lost my virginity to her, we ended up breaking up and decided to be friends instead as she's quite into drinking and drugs and I didn't do any of that. The reason behind it is due to her old brother raping her when she was 14, she attended a rape support group but the other girls made fun of her for being raped by her own family, it was those 2 events that lead her to drugs and alcohol to deal with her trauma. During those years I've always tried to help her out of the addiction which earned me respect from her parents and they treated me like a son. And she's always been protective of me defended me. She truly is a wonderful girl that had something horrible happen to her that derailed her life. Eventually I went to college and lost touch with her for 2 years due to cellphones at the time were disposable and phone numbers were locked to the phone no sim cards. After college I looked for her and found out she was in rehab for drugs, and she has been trying to study to be a chef which is cool, as we used to make dinner for her parents as a way to keep her from hanging out with her drug friends on a Friday night, it was awesome to hear she was trying to better her life. During that time I had gf that I ended up marrying and life got busy... till we broke up and she moved back to Canada (we lived in New zealand). She was also the jealous type where I can't have friends that are girls. Since she's gone I can follow up and see how my friend is doing it wasn't a voluntary rehab it was court ordered and she can only be let out if they deem she's ready and she can't have outside contact unless authorized. She was out and living with her parents so just like that everything went back to normal we instantly clicked like the past 3 years ofnever happened. The first night we hung out we went to the beach and sat on the sand and filled eachother in all that happened in the last 3 years in all its detail, we most of sat there for 8 hours. She was happy I've never seen her that happy. And it sounded like she was pulling her life together. If I read it right I think she was hoping I'd ask her out again and be a couple. Technically still being married I didn't want to start anything with her until I can get a divorce. So I guess we stuck to friends with benefits. Until 6 month later my wife called and wanted to give our marriage another try but I had to move to Canada to do it. That was probably the most difficult decision I had to make at age 24. But I ended up deciding to give the marriage another try. I had to say goodbye to my friend again. Her last words to me was she cared about me and hope it works out and I can be happy... Soon after she was placed back into rehab and we lost contact. In the Era where home computers were starting to be adopted and everyone carred a Nokia with snake and the best camera phone can only take 240i pictures. And everyone thought Facebook was a MySpace rip off. Staying in touch was hard. I've always thought about her and if she's okay. She doesn't hang with good people. I'm always worried she would overdose. I always thought one day I'll save up enough to go back see her and my family. But then I had a child and then the economy went to shit. But I always thought I'd have time still after all were still young. And now she's gone. I don't know how she died she has 0 online presence other than the obituary. And a few articles mentioning her being caught drunk driving and more rehab. I feel like I let her down, I should have never left her. I wasn't there for her. She never got the right help she deserved. It's almost 4am and all I want to do is just on a plane and find out what happened. Life is so unfair shes such a wonderful person destroyed by awful people. I hope she is able to finally find the peace she's been searching for.
I've completed the Survey Form assessment on Free Code Camp, but I wanted to make a more visually appealing and responsive design. For whatever reason the "Quality of Service" and "How did you hear about us?" labels and inputs aren't displaying the way I'd like (as can be seen in the Price section). Where have I gone wrong? I'd love to hear any other feedback too! :) HTML:
2024.06.04 21:40 jms_nhSimple diagrams in Typst + CeTZ
I would love to switch from using TikZ to Typst + CeTZ because of the clean architecture and syntax (compared to TeX's dependence on macros and TikZ's dependence on domain-specific syntax). But I'm having real trouble even doing simple things. Here is a simple example: https://imgur.com/a/dkeACaA source code in TikZ:
\documentclass[margin=1mm]{standalone} \usepackage{tikz} \usetikzlibrary{calc} \definecolor{blockcolor}{rgb}{0.8,0.9,0.95} \begin{document} \begin{tikzpicture}[ every node/.style = {font=\sffamily}, >=latex, block/.style = {rectangle, fill=blockcolor, draw=black, minimum width=1.6cm, minimum height=1cm, rounded corners=1.5mm}, bigdot/.style={circle, very thick, draw=black, minimum width=2mm, minimum height=2mm, inner sep=0} ] \node [bigdot] (start) at (-2,0){}; % \strut seems to align text by baseline but I'm not sure how \node [block] (foo) at (0,0) {\strut foo}; \node [block] (bar) at (2.5,0) {\strut bar}; \node [bigdot] (stop) at (4.5,0){}; \node [block] (baz) at (0,-1.5) {\strut baz}; \node [block] (quux) at (baz - bar) {\strut quux}; \draw[->] (start) -- (foo); \draw[->] (foo) -- (bar); \draw[->] (bar) -- (stop); \draw[->] (baz) -- (quux); \draw[->, rounded corners=1.5mm] (start) -- ($(start.east)!0.5!(foo.west)$) - (baz); \draw[->, rounded corners=1.5mm] (quux) - ($(bar.east)!0.5!(stop.west)$) -- (stop); \draw[->, line width=1mm, draw=red!90!black] (foo.north west) ++(0,2mm) coordinate (arrow1start) -- (bar.east - arrow1start) node[pos=0.5, above, scale=0.8]{Tweedledee}; \draw[->, line width=1mm, draw=green!75!black] (baz.south west) ++(0,-2mm) coordinate (arrow1start) -- (quux.east - arrow1start) node[pos=0.5, below, scale=0.8]{Tweedledum}; \end{tikzpicture} \end{document}
For CeTZ I do know how to specify coordinates, and draw rounded rectangles with the radius key, but I do not know how to draw text above or below a line, or how to draw a polyline with rounded corners. Any suggestions?
2024.06.04 21:31 phantom-of-the-OPTuesdays for me are mental health and handwriting improving days
Just committed to both improving my mental health as I suffered from depression for 2 decades (I’m 30 now) and started seeing a therapist recently and super proud of myself even though it’s slow progress. Found that trying to improve my shakey handwriting is also a way to commit to putting words to paper. Even if the feelings can be painful sometimes at least I can ‘beautify’ them 😅 and encourage myself to continue to pouring them out in a diary or in the sessions Copied out the ‘Do’s’ and ‘Don’ts’ of cultivating wholeheartedness in one’s life - from Brené Brown’s ‘The Gifts of Imperfection’ I use an online cursive writing generator to try out styles I’d like to reproduce by hand - I use ‘Weddingday’ by Billy Argel Fonts from fontspace.com
2024.06.04 21:24 andriisssNeed help! Don’t know why my elements are not visible.
Hey guys! I'm new to HTML/CSS and currenty, I'm practing one of the free Figma layout and so on. I'm making the "hero" section(actually the "hero" class inside the "section" tag, and there are two divs - "images_section" and "watch_our_courses"), where the first di it is just photos that are positioned by top, left and whatever and another div where are just hr, h1, p and a tags. After I applying the display:flex to these two divs, I don't see my elements from the second div at all(only hr tag is visible). When going to the live server, I see the images are shown pretty well, but elements from the "watch_our_courses" div are not visible(besides "hr" one). Here the code. HTML Document
HIGH QUALITY COURSES
Our goal is to make online education work for everyone
2024.06.04 21:23 Inner-Detective-2033How to Achieve Slide-Down and Fade-In Animation Effect for React Component Rendering?
I'm working on a React project where I have multiple components that render conditionally based on state changes. I'm trying to implement a slide-down and fade-in effect for one of these components when it gets rendered. Below is a simplified version of my code:
In this code, I want to create a slide-down and fade-in effect for the second component (TypeAnimation) as soon as it gets rendered, but I'm not sure how to achieve that. Can someone provide guidance or a solution on how to implement this effect? Thank you!
2024.06.04 17:35 IlliniJenstart promoting your books as an unpublished, unknown author...here are some whys and hows, with metrics!
I've seen some folks in this subreddit say there's no reason to start promoting yourself or your book if you don't have anything published yet. They contend that no one will take a chance on an unknown author without a published novel. Let me disavow of that notion: it's complete and utter hogwash. Let me say that again for the folks in the back: IT'S BULLSHIT. Market. And. Promote. Your. Fucking. Books. Early. And. Often. I'm going to preface this by saying I'm a Senior Product Marketing Manager by day and author by night, so I know what I'm talking about when it comes to promoting and launching a new product. Your book needs and deserves a marketing effort in the run up to your debut novel launch. And any books after that need a launch plan. The folks who say that "no one will take a chance on an unknown author" rarely back it up with metrics that proves this opinion. So let me share some of my pre- and post-launch book metrics with you. IMPORTANT NOTE: I'm writing sapphic epic fantasy, so I'm writing into a smaller market niche than many of you. This comes with some pros and cons...the cons being, it's a small market niche. My books won't largely appeal to straight women or your typical male fantasy consumer. The pros are...the sapphic book/author community is very organized and hungry for content and supportive of one another. I have bought about 10 sapphic SFF indie books just by networking with authors alone, so yes, other authors are also your target buyer persona. ESPECIALLY indie authors who, for the most part, are happy to share success. A rising tide lifts all boats. I started promoting myself and growing my social media platforms at the beginning of March for my debut book release at the end of April. I hit TT, IG, Threads, and FB as my main SM channels. Note: I believe I started a month or two later than I should have, but it's just how things worked out. My social media/audience metrics 2 months before my end-of-April launch (I started my promotion/engagement the beginning of March):
530 NL subs (I suspect about half of those could be bots...I will clean up my list as I release more NLs and evaluate open rates)
300 IG followers
0 TT followers
0 Threads followers
My social media/audience metrics growth since:
~930 NL subs...100 in June alone (4 days!) due to Pride Bookfunnel promos
~530 IG followers...I participated in two giveaways post-release to gain followers along with organic growth; IG growth is SLOW, so be aware of that
~1000+ TT followers...growth is slow after 1000
~1300+ Threads followers...an amazing platform to network with other authors and slowly reach readers as Authorthreads and Bookthreads start to bleed into one another
Now, let's talk turkey. What about actual book sales? Launch day metrics:
~15 or so reviews on Goodreads, 0 on Amazon (obvi)
46 e-book preorders on Amazon
My metrics since launch at the end of April:
~170 orders between amazon and Ingram
Closing in on 50K page reads this week; getting about 1k page reads a day
14 pre-orders for book 2 coming this summer, and 9 for book 3 coming this fall as of today
~70 reviews on Goodreads, ~60 on Amazon
So, what's worked? SOCIAL MEDIA ENGAGEMENT - Yes, this is important for indie authors, not only to network with other authors, but to find and engage with your target audience. Without asking, I have people highlighting, reviewing, or mentioning my book on IG, Threads, and FB (I haven't figured out TT and only post, so little to no engagement there). The key here is to BE AUTHENTIC and talk to people. Like, comment, follow. Be personable, create a rapport, and find your readers and fellow authors. Most authors realize that books are not in competition with one another...we're just in competition with ever-expanding TBRs. IDENTIFYING A BUYER PERSONA AND FINDING THEM WHERE THEY LIVE - You HAVE to know who you wrote your book for and how to speak to them where they "live" online. For me, I found a massive audience for sapphic books on FB and used clever, authentic promotions to solicit ARC readers and buyers on their promo days. I've found a similar sapphic authoreadereviewer tribe on IG/Threads who are more than happy to highlight queer books. I am trying to bleed into other audiences, such as women who like romantic fantasy (note: I'm NOT marketing my series as romantasy) and male fantasy fans who can dig female-forward novels, so we'll see how that goes. But I'm going to focus and target sapphic women first and foremost instead of spreading my messaging/targeting too thin. Know what your product is and who wants it and speak directly to them. READER MAGNET/BOOKFUNNEL - should you use Bookfunnel? Fuck yes. In Jan/Feb of this year, another author told me to get my ass in gear, create a reader magnet, then start doing the newsletter promos on Bookfunnel. So, I buckled down, wrote a 7k short story that takes place 3 years before my debut novel, got Miblart to make me a quick throw-away cover, and that's all she wrote...I've consistently added 100+ subs to my NL each month since. I participate in about 3 NL and 3 sales promos per month with one NL send a month except for special occasions like book launch day and my Happy Pride! NL. SCATTERSHOT BOOK MARKETING - I'm a product marketing manager...for high tech. I DON'T know book marketing, but what I do know is how to use Canva and how to write engaging copy. I have a pretty good/witty sense of humor, so I will do some standard book marketing (book quotes, page flip videos, cover reveals, trope maps), but I'll also get fucking irreverent with my marketing. I will take a popular fantasy trope/feature and do something to subvert it or juxtapose it, suggesting what I offer instead in my books that are a differentiator. Or I'll do some really over-the-top ad copy with bright, punchy fonts or artwork. I also created a tagline for my books and my author brand, which I stick on everything. I'm marketing MYSELF as much as my books. You like fantasy with a little verve, you come to me. Or at least, that's what I'm trying to instill with my brand. My point is, I'm playing around with my marketing strategy, mixing in some fun stuff, to see what resonates and I'm having a BLAST doing it because it essentially is a creative exercise. The next points are luxury/niche, so YMMV: GET AMAZING ARTWORK - this is a luxury since I spend $$$ with my cover artist, but my covers and character art are amazing. I reuse my character art and covers to build trope maps, create promos, and whatever graphics I need to catch the eye. If your covers aren't good, do whatever you can to save up some coin to even get a pre-made one. DO NOT USE AI. I just watched readers DOGPILE an author who used AI in her ad for her book. Not the cover, mind you, her AD. The lesson being...do not use AI; readers know. And creatives support creatives. HAVING A WELL-EDITED/PROOFED BOOK - I spent $$$ on both of these, engaging a line/copy editor and a proof reader and my readers can tell. The common sense is in indie publishing you spend your money on covers and editing and that's the facts. But not everyone can afford a professional edit...so invest a little in Pro-Writing Aid and fine tooth comb your shit. Caveats to the above methods: Your genre and target buyereader persona may engage or read differently. I made a choice to be in KU because fantasy does well there, as does romance, erotica, and I hear thrillers. But other genres may benefit from going wide...do your research! Money and time is a big factor to how you produce and market your book. Figure out what you can afford and how to use your time. I have a good day job, so I funnel my "fun" money into writing. Others have to be more judicious about how they spend their book budget. Also, SM engagement / posting takes TIME. What I did was spend a weekend creating a bunch of SM backgrounds for book quotes and just created a shit ton of ready-made quotes. I'll use a couple a week then mix in some more creative/disruptive marketing or I'll highlight another author's book. I post everyday. IG is my "main" platform, so I re-use the same daily post on TT and FB. But I create graphics in Canva and take a little time on my copy for each post, with an eye towards keywords and music that matches the mood. If the sound is trending, all the better. I realize this is A LOT and likely overwhelming, but you don't have to go whole hog like I did. I was very anxious about if I wrote myself into a small, no-revenue niche, so I did everything I could to give my books a fighting chance by relying on my professional background and just plowing forward, regardless of if a post got a like or I got an order for my book. The metrics wax and wane...your buys and reads will dip...then for no reason, they'll pick up. This is a looooooooooong game, folks, so buckle in and build repeatable processes that serve your book marketing strategy. Experiment too! Be creative in how you promote your books!
2024.06.04 16:51 doughnutbreakfastTabletop RPG turn tracker requires double-click when changing direction in turn order.
Hello everyone, I've been working on a turn tracker for the EZD6 tabletop role-playing game. The issue I'm having is that when I hit the next turn button, it works fine, but when I hit the rewind turn button, it requires a double press, and then if I were to hit the rewind turn button again, it would work fine, but if I were to change directions, it would require a double press. Basically every time I'm going in one direction, backward or forward, it necessitates a double click when I change directions. On the first click of the directional change through the turn order. One other thing to note is that when the program first loads, then my hero is selected in bold. I have to double click next turn to get the turn going. After that it works fine. My workaround solution was to just initiate the program with one immediate next turn press after a fraction of a second so that when I actually click next turn the very first time I open the script I don't have to do it twice. I also have a button I can press on a given character's turn to turn their name text italic and make them be skipped in the turn order. ``` def next_turn(self): print("Entering next_turn") print(f"Current turn_index before increment: {self.turn_index}") self.clear_bold() total_characters = len(self.companions) + len(self.enemies) + 1 # Including the hero while True: if self.turn_index >= total_characters: current_turn = int(self.turn_counter_var.get()) self.turn_counter_var.set(str(current_turn + 1)) self.turn_index = 0 self.result_text.delete(1.0, tk.END) self.result_text.insert(tk.END, f"Round {current_turn + 1}\n") print(f"Checking turn_index = {self.turn_index} for skippable status and highlighting") if self.turn_index == 0: if not self.hero_skippable: self.hero_name_entry.config(font=("TkDefaultFont", 10, "bold")) self.active_turn = self.hero_name_entry break elif self.turn_index <= len(self.companions): companion_name_entry = self.companions[self.turn_index - 1][1] companion_skippable = self.companions[self.turn_index - 1][2] if not companion_skippable: companion_name_entry.config(font=("TkDefaultFont", 10, "bold")) self.active_turn = companion_name_entry break else: if self.turn_index == len(self.companions) + 1: self.result_text.delete(1.0, tk.END) self.result_text.insert(tk.END, "Enemy Turn\n") enemy_index = self.turn_index - len(self.companions) - 1 if enemy_index < len(self.enemies): enemy_frame, enemy_name_entry, enemy_skippable = self.enemies[enemy_index] if not enemy_skippable: enemy_name_entry.config(font=("TkDefaultFont", 10, "bold")) self.active_turn = enemy_name_entry break self.turn_index += 1 self.turn_index += 1 print(f"Current turn_index after increment: {self.turn_index}") print(f"Next Turn: {self.turn_index}, Active Turn: {self.active_turn.get()}") print("Exiting next_turn") def rewind_turn(self): print("Entering rewind_turn") print(f"Current turn_index before decrement: {self.turn_index}") self.clear_bold() total_characters = len(self.companions) + len(self.enemies) + 1 # Including the hero
Decrement the turn index
self.turn_index -= 1 if self.turn_index < 0: self.turn_index = total_characters - 1 current_turn = int(self.turn_counter_var.get()) if current_turn > 1: self.turn_counter_var.set(str(current_turn - 1)) self.result_text.delete(1.0, tk.END) self.result_text.insert(tk.END, f"Round {current_turn - 1}\n") else: self.turn_counter_var.set("1") self.result_text.delete(1.0, tk.END) self.result_text.insert(tk.END, "Round 1\n") print(f"Rewind Turn Check: turn_index = {self.turn_index}") while True: print(f"Checking turn_index = {self.turn_index} for skippable status and highlighting") if self.turn_index == 0: if not self.hero_skippable: self.hero_name_entry.config(font=("TkDefaultFont", 10, "bold")) self.active_turn = self.hero_name_entry break elif 1 <= self.turn_index <= len(self.companions): companion_index = self.turn_index - 1 if companion_index < len(self.companions): companion_name_entry = self.companions[companion_index][1] companion_skippable = self.companions[companion_index][2] if not companion_skippable: companion_name_entry.config(font=("TkDefaultFont", 10, "bold")) self.active_turn = companion_name_entry break else: enemy_index = self.turn_index - len(self.companions) - 1 if 0 <= enemy_index < len(self.enemies): enemy_frame, enemy_name_entry, enemy_skippable = self.enemies[enemy_index] if not enemy_skippable: enemy_name_entry.config(font=("TkDefaultFont", 10, "bold")) self.active_turn = enemy_name_entry break
Decrement the turn index for the next check
self.turn_index -= 1 if self.turn_index < 0: self.turn_index = total_characters - 1 print(f"Updated turn_index = {self.turn_index} after finding skippable status") print(f"Current turn_index after decrement: {self.turn_index}") print(f"Rewind Turn: {self.turn_index}, Active Turn: {self.active_turn.get()}") print("Exiting rewind_turn") ``` Here is a Dropbox link to the full script if anyone is interested in fiddling around. https://www.dropbox.com/scl/fi/shswck84at0nm877cwe70/ezd6_tracker_extra-logging.py?rlkey=8cqn6j1km5aycf9sswdyp8ema&dl=0
Building Your First Website with Block Themes: A Step-by-Step Tutorial
Glossary: WordPress: A popular content management system (CMS) for creating and managing websites. Block Themes:WordPress block themes that utilize the full site editing capabilities of the Gutenberg editor, allowing users to customize website layouts and designs using blocks. Gutenberg Editor: The block-based editor for WordPress introduced in version 5.0, which allows users to add, edit, and arrange content blocks for posts and pages. Blocks: Individual components used in the Gutenberg editor to create content, such as text, images, buttons, and more. Block Templates: Pre-designed layouts made up of multiple blocks, used to create pages and posts. Block Patterns: Collections of pre-designed blocks that can be inserted into posts and pages to quickly add complex structures and designs. Responsive Design: Ensures web content looks and functions well on a variety of devices and screen sizes. SEO (Search Engine Optimization): Optimizing a website to improve its visibility in search engine results. Plugin: A software add-on that extends the functionality or features of a WordPress website. WooCommerce: An open-source plugin for WordPress designed to facilitate e-commerce, enabling users to sell products and services. Theme.json: A configuration file used in block themes to define global styles and settings for a WordPress site, such as color palette, typography, and layout. Accessibility: Ensuring a website is usable by as many people as possible, including those with disabilities. Meta Tags: Snippets of text that describe a page’s content for search engines, important for SEO.
Chapter 1: Understanding the Basics
What Are WordPress Block Themes? Imagine traditional website themes as pre-designed rooms where moving windows (headers) or changing doorways (navigation menus) is difficult. Block themes, however, offer completely flexible furniture, letting you drag and drop elements like headers, footers, and sidebars wherever you want within the Gutenberg editor. Benefits Over Traditional Themes:
Flexibility: No coding required. Transform your site’s layout and design easily.
User-Friendly: Perfect for non-technical users.
Consistency: Apply consistent color schemes and font styles across all pages with a few clicks.
Innovation: Continuous updates and new features from the WordPress community.
Block Templates and Patterns: Block Templates: Define the default layout of pages and posts, acting as a pre-arranged set of blocks that users can customize. Block Patterns: Pre-made design elements like featured product sections, testimonial sliders, and call-to-action sections, ensuring design consistency and ease of use. Exploring the WordPress Block Pattern Directory: The WordPress Block Pattern Directory houses a collection of block patterns submitted by designers and developers, making it easy for beginners to implement sophisticated design elements without needing design or development expertise.
Chapter 2: Getting Started with Block Themes
Choosing a Block Theme:
Design and Style: Match your vision and brand aesthetics.
Responsiveness: Ensure the theme looks good on all devices.
Loading Speed: Opt for themes optimized for speed.
Compatibility: Check compatibility with essential plugins.
Support and Updates: Choose themes with regular updates and reliable support.
Reviews and Ratings: Explore user feedback.
Installation and Activation:
Access Your WordPress Dashboard: Log in to your admin area.
Navigate to Themes: Click on “Appearance” and select “Themes.”
Add New Theme: Click “Add New” to browse or search for block themes.
Preview and Install: Hover over a theme to preview, then click “Install.”
Activate the Theme: Click “Activate” to apply the theme to your website.
Familiarizing with the Gutenberg Editor:
Blocks: Core components for adding text, images, videos, and buttons.
Block Toolbar: Offers settings and options for each block.
Adding Blocks: Click the “+” button to add new blocks.
Block Patterns: Access pre-designed patterns to jumpstart your design.
Reusable Blocks: Save frequently used blocks for consistency.
Global Styles and Settings: Customize site-wide settings like color palette and typography.
Chapter 3: Building the Structure of Your Website
Planning Your Website Layout:
Define Your Goals: Determine the purpose of your site.
Map the User Journey: Plan navigation paths for visitors.
Sketch the Layout: Visualize the arrangement of elements.
Using Block Templates for Page Layouts:
Select a Template: Choose a template matching your envisioned layout.
Customize Templates: Use the Gutenberg editor to adjust blocks.
Create Custom Templates: Design unique layouts and save them for future use.
Implementing Block Patterns for Design Consistency:
Explore Available Patterns: Browse the Block Pattern Directory.
Use Patterns: Insert patterns into pages as needed.
Customize Patterns: Adjust elements to match your branding.
Create Custom Patterns: Save custom designs for repeated use.
Chapter 4: Customizing Your Website
Personalizing Your Block Theme:
Select a Customizable Theme: Choose a theme with extensive options.
Use the Theme Editor: Adjust headers, footers, and global styles.
Incorporate Your Branding: Upload logos and favicons.
Customize Block Styles: Explore additional styles for blocks.
Working with the WordPress Pattern Library:
Explore the Library: Find patterns that enhance your site.
Choose Relevant Patterns: Select patterns that fit your design needs.
Customize and Implement: Adjust patterns in the Gutenberg editor.
Contribute to the Library: Submit your unique patterns.
Chapter 5: Enhancing Your Website
Incorporating Multimedia with Block Templates:
Add Images: Use the Image block to upload and customize images.
Embed Videos: Use the Video block for embedding videos.
Use Gallery and Media Blocks: Create visually appealing collections.
Ensure Responsiveness: Test multimedia elements on different devices.
Optimizing for SEO:
Use Semantic HTML Blocks: Properly structure content.
Meta Tags and Descriptions: Add SEO titles and descriptions.
Alt Text for Images: Improve accessibility and SEO.
Internal Linking: Use blocks to create internal links.
Ensuring Mobile Responsiveness and Accessibility:
Test Across Devices: Ensure layouts adjust correctly.
Accessibility Features: Implement blocks with accessibility support.
Contrast and Font Sizes: Ensure readability on small screens.
Accessible Navigation: Design a responsive menu.
Chapter 6: Adding Advanced Features
Integrating E-Commerce Capabilities:
Install WooCommerce: Activate the plugin from the WordPress directory.
Use WooCommerce Blocks: Customize your store layout.
Set Up Payment Gateways: Configure secure transaction options.
Test and Launch: Ensure a smooth shopping experience.
Using Plugins with Block Themes:
SEO Plugins: Enhance search engine optimization.
Security Plugins: Protect your site from threats.
Performance Plugins: Improve loading speed.
Contact Form Plugins: Add customizable forms.
Exploring Global Styles and Theme.json:
Understand Global Styles: Define consistent design elements.
Use Theme.json: Configure global settings and styles.
Customization: Edit theme.json for a unified design.
Testing Changes: Preview and adjust global styles.
Chapter 7: Launching Your Website
Pre-Launch Checklist:
Content Review: Check for typos and consistency.
Functionality Test: Verify all links and forms work.
SEO Optimization: Ensure all best practices are applied.
Loading Speed: Optimize for fast loading times.
Security Measures: Ensure security plugins and SSL certificates are in place.
Backup Solutions: Set up regular backups.
Legal Compliance: Ensure compliance with privacy policies and terms of service.
Publishing Your Website:
Choose a Hosting Provider: Select a reputable provider.
Connect Your Domain: Link your domain to your hosting account.
Final Review: Conduct a last check for any issues.
Go Live: Point your domain to your WordPress installation.
Announce Your Launch: Use social media and email lists.
Monitoring and Updating Your Website:
Regular Updates: Keep WordPress core, themes, and plugins updated.
Performance Monitoring: Regularly check and improve site speed.
Security Checks: Use security plugins to monitor threats.
Content Updates: Regularly add new content.
Backup Regularly: Protect your data with frequent backups.
Streamlining the Design Process with Gutenberg Block Addons
Full Site Editing (FSE): Utilize the Site Editor and Global Styles interface for comprehensive control over your site. Patterns Directory: Regularly check for new block patterns to enhance your site’s design. Block Theme Development: Stay updated with new block themes in the WordPress Theme Directory. Performance Enhancements: Choose themes and plugins optimized for speed. Accessibility Improvements: Ensure your website meets accessibility standards. Artificial Intelligence and Automation: Integrate AI tools for content creation and SEO optimization. E-Commerce Innovations: Leverage new features in WooCommerce for better online selling. Security Updates: Stay informed about the latest security practices. Sustainability: Implement best practices for reducing your website’s digital carbon footprint.
FAQs
: WordPress Block Themes What Are WordPress Block Themes? Block themes utilize the Gutenberg editor, allowing customization of the entire site layout using blocks. How Do Block Themes Differ from Traditional Themes? Block themes offer more flexibility, allowing users to customize designs without coding. What Is the Gutenberg Editor? A block-based editor that replaces the classic WordPress editor. Can I Use Block Themes on Any WordPress Site? Yes, if it’s running WordPress version 5.0 or later. Are Block Themes Free? Many are free, but there are also premium options. How Do I Install a Block Theme? Navigate to “Themes” in your WordPress dashboard, click “Add New,” and search for a block theme. What Are Block Templates and Patterns? Block templates are pre-designed page layouts, while block patterns are collections of blocks arranged in specific designs. How Do I Customize My Website Using a Block Theme? Use the Site Editor and Gutenberg editor to add, remove, and rearrange blocks. Is Coding Knowledge Required? No, block themes are designed to be user-friendly. Can I Use Plugins with Block Themes? Yes, but ensure compatibility with the block editor. How Can I Ensure My Block Theme Website Is Mobile-Responsive? Most block themes are responsive; use the preview option to check different devices. What Should I Do If a Block Theme Breaks My Site? Deactivate the theme via FTP and revert to a default theme. Can Block Themes Improve My Site’s SEO? Yes, they help structure content and ensure responsive design. How Do I Update My Block Theme? Update it via the WordPress dashboard, ensuring you have a backup first. Are Block Themes Secure? Yes, when kept updated and sourced from reputable providers. How Can I Add E-Commerce Capabilities? Install WooCommerce or other e-commerce plugins. What Are Global Styles? Site-wide settings for colors, typography, and layout. How Do I Make My Website Accessible? Use themes and blocks that follow accessibility guidelines. Can I Switch from a Traditional Theme to a Block Theme? Yes, but you may need to reconfigure parts of your site. Where Can I Find Support? WordPress forums, theme-specific support forums, or theme documentation.
WordPress Resources
Official Website:wordpress.org – Download software, find documentation, and more. WordPress Codex:codex.wordpress.org – Comprehensive documentation for WordPress. WordPress Theme Directory:wordpress.org/themes – Browse free and premium themes. Maxiblocks:maxiblocks.com – Tools and resources for block themes. YouTube Channel:Maxiblocks YouTube – Tutorials and guides. GitHub:Maxiblocks GitHub – Open-source contributions and projects. This step-by-step tutorial provides a comprehensive guide to building your first website with WordPress block themes, from understanding the basics to customizing, enhancing, and launching your site.
2024.06.04 14:34 Striking-Ad7311Themes for RetroArch
Disclaimer: 1. These menu drivers (XMB, and RGUI) are not touch friendly, for the most part. 2. RetroArch “themes” are pretty limited. They can only change the background images, icons, and font.
[XMB] 1. Chronopixel
Installation: 1. Background (convert it to .png): https://fantasyanime.com/squaresoft/images/ctwallpaper_20-1366x768.jpg. 2. Font: https://www.dafont.com/chronotype.font 3. More backgrounds (make sure to convert them to .png, cause some aren’t): https://fantasyanime.com/squaresoft/ctpapers.htm 4. Move the background, and “Chronotype.ttf” to Files \ RetroArch \ RetroArch \ assets \ xmb \ pixel. How to Apply: 1. Change the menu driver to “xmb”. Drivers \ menu \ xmb -> Restart RetroArch. 2. Turn on “Show Advanced Settings” on Settings \ User Interface. 3. Then, User Interface \ Appearance \ Background Image \ Pixel \ bg.png. 4. Background opacity \ 0.800. 5. Icon Theme \ Pixel. 6. Font \ xmb \ pixel \ font.ttf. If it’s too small, Appearance \ Scale Factor \ Increase it to your liking, or Appearance \ Layout \ Handheld. Site (s) to find box arts: * https://www.screenscraper.fr (Not a mobile friendly site). * https://gamesdb.launchbox-app.com/#s (Less complete).
https://www.reddit.com/Lakka/s/5KTHydG3lC Installation (1gb): 1. Go to https://github.com/lipebello/Retroarch-XMB-Retrorama-Theme, click the green “code” button -> Download ZIP. 2. Move “png”, and “font.ttf” to On my iPhone \ RetroArch \ RetroArch \ assets \ xmb \ custom. 3. Create a folder called “wallpapers” on assets \ xmb. Move the“Retrorama Dynamic Wallpapers” folder there. How to Apply: 1. Change the menu driver to “xmb”. Drivers \ menu \ xmb -> Restart RetroArch. 2. Turn on “Show Advanced Settings” on Settings \ User Interface. 3. Settings \ Directory \ Dynamic Backgrounds \ assets \ xmb \ wallpapers \ Retrorama Dynamic Wallpapers. 4. User Interface \ Appearance \ Color Theme \ Background Image. 5. Dynamic Background \ On. 6. Icon Theme \ Custom. 7. Font \ xmb \ Custom\ font.ttf. 8. Primary Thumbnail \ Off 9. Secondary Thumbnail \ Box Art. 10. Appearance \ Scale Factor \ Match it to your screen. Extra Content - (This could take a couple hours, depends on how big your game library is.) • The creator added some cartridge/disc art to replace the normal 2D box art, it’s on the Extra Content \ thumbs folder. As you noticed, they’re .rar files, even if you rename it to .zip, they won’t open. If you don’t have a computer, the best way to extract these (that I know of) on iOS is to use https://ios.keka.io.
Open RetroArch \ Main menu \ Online Updater \ Playlist Thumbnail Updater \ [System], that’ll create some new folders on the “thumbnail” folder for RetroArch, which you can access via the Files app.
After extracting the files, or after just downloading a couple, go to RetroArch \ Thumbnails \ [System] \ Named_Boxarts \ Copy the game name \ Delete that original .png file.
Go to where you placed the extracted custom box arts \ Rename the new box art to the one you just copied \ Move it to [System] \ Named_Boxarts.
How to Apply: 1. Change the menu driver to “rgui”. Drivers \ Menu \ rgui -> Restart RetroArch. 2. Go to Settings \ User Interface \ Appearance \ Aspect Ratio \ 16:10 (Centered). 3. Then, Color Theme \ Custom \ Custom Theme Preset \ Mage Boy Color. (Pick the one you like most. There’s some really good ones there).
2024.06.04 14:24 Jazzkidscoinsdynamically change displays in dual OLED setup
On my project I have two OLED screens. I'm using U8G2 to drive the displays and then are conveniently called "display1" and "display2" Right now I have data from a DHT11 on one screen and from an ultrasonic sensor on the other by using "display1.drawSTR()" or "display2.drawSTR()" as required. I'm going to put more of my code below but my question is can I make a variable for the "display1" or whichever, so I can change which screen the data displays on based on options in the code, or even if in the future I want to change which screen it displays on without having to change a bunch of code? Hopefully this question makes sense... I tried to snippet my code but I'm not sure how much I should include/remove. Also, I'm still learning so I might be overcomplicating a lot of this code
#include //Servo motor #include //OLED Screens #include //DHT SENSOR #include "DHT.h" #define DHT11Pin 22 #define DHTType DHT11 //HC-SR04 Sesnor #include "NewPing.h" // HC-SO4 Sensor #define SONAR1 23 #define SONAR2 25 #define MAX_DISTANCE 200 // max distance the sensor will return #define NUM_SONAR 2 // number of sonar sensors //OLED Screen U8G2_SSD1306_128X64_NONAME_F_HW_I2C display1(U8G2_R0, 5,4,U8X8_PIN_NONE); U8G2_SSD1306_128X64_NONAME_F_HW_I2C display2(U8G2_R0, 5,4,U8X8_PIN_NONE); //MILLIS unsigned long currentMillis; unsigned long displayTimer; unsigned long displayDelay = 500; unsigned long tempTimer; unsigned long tempDelay = 1000; unsigned long USTimer; unsigned long USDelay = 100; unsigned long previousMillis[9]; //[x] = number of LEDs - this is for the LED array //DHT Sensor DHT HT(DHT11Pin,DHTType); float humi; float tempC; float tempF; //HC-SR04 Sensor int distance[NUM_SONAR]; // array stores distances for each // sensor in cm NewPing sonar[NUM_SONAR] = { // array of sonar sensor objects NewPing(SONAR1, SONAR1, MAX_DISTANCE), NewPing(SONAR2, SONAR2, MAX_DISTANCE) }; //Functions void OLEDDisplay1() { display1.clearDisplay(); // clear display display1.clearBuffer(); // clear the internal memory oledDisplayHeader(); oledDisplayHumi(); oledDisplayTempC(); oledDisplayTempF(); display1.sendBuffer(); // transfer internal memory to the display } void OLEDDisplay2() { display2.clearDisplay(); // clear display display2.clearBuffer(); // clear the internal memory oledDisplayDistance1(); //display2.setFont(u8g2_font_ncenB10_tr); //display2.drawStr(20,20,"World!"); // write something to the internal memory //display2.setCursor(20,20); //display2.println(humi); //display2.setCursor(20,35); //display2.println(tempC); //display2.setCursor(20,50); //display2.println(tempF); display2.sendBuffer(); // transfer internal memory to the display } void runDisplays() { if (currentMillis - displayTimer > displayDelay) { OLEDDisplay1(); // write to display 1 OLEDDisplay2(); // write to display 2 displayTimer = currentMillis; // reset timer } } void oledDisplayHeader() { display1.setFont(u8g2_font_ncenB08_tr); display1.drawStr(0,8, "Humidity"); display1.drawStr(60,8, "Temperature"); } void oledDisplayHumi() { char buffHumi[8]; char humiBuff[8]; dtostrf(humi, 2, 0, humiBuff); //converts float to string sprintf(buffHumi, "%s%s", humiBuff, "%"); //creates string display1.setFont(u8g2_font_ncenB10_tr); //set the font display1.drawStrX2(5, 50, buffHumi); //draws humidity string X2 doubles the current font size } void oledDisplayTempC() { char buffTempC[10]; char tempCBuff[10]; dtostrf(tempC, 8, 1, tempCBuff); //converts float to string sprintf(buffTempC, "%s %s", tempCBuff, "C"); //creates string display1.setFont(u8g2_font_ncenB10_tr); //set the font display1.drawStr(70, 30, buffTempC); //draws the tempC string } void oledDisplayTempF() { char buffTempF[10]; char tempFBuff[10]; dtostrf(tempF, 3, 1, tempFBuff); //converts float to string sprintf(buffTempF, "%s %s", tempFBuff, "F"); //creates string display1.setFont(u8g2_font_ncenB10_tr); //set the font display1.drawStr(85, 50, buffTempF); //draws the tempF string } void oledDisplayDistance1(){ display2.setFont(u8g2_font_ncenB08_tr); //set the font display2.drawStr(0,15, "Distance 1: "); display2.setCursor(90,15); display2.print(distance[0]); display2.print("cm"); display2.drawStr(0, 30, "Distance 2: "); display2.setCursor(90,30); display2.print(distance[1]); //display2.print("cm"); //Serial.println(distance[0]); //Serial.println(distance[1]); } void checkTemp(){ //delay(1000); if (currentMillis - tempTimer > tempDelay){ humi = HT.readHumidity(); tempC = HT.readTemperature(); tempF = HT.readTemperature(true); //Serial.print("Humidity:"); //Serial.print(humi,1); //Serial.print("%"); //Serial.print(" Temperature:"); //Serial.print(tempC,1); //Serial.print("C ~ "); //Serial.print(tempF,1); //Serial.println("F"); tempTimer = currentMillis; } } // takes a new reading from each sensor and updates the // distance array void updateSonar() { for (int i = 0; i < NUM_SONAR; i++) { distance[i] = sonar[i].ping_cm(); // update distance - can also use *.ping_in for distance in inches // sonar sensors return 0 if no obstacle is detected // change distance to max value if no obstacle is detected if (distance[i] == 0) distance[i] = MAX_DISTANCE; } } void checkDistance() { if (currentMillis - USTimer > USDelay) { USTimer = currentMillis; updateSonar(); } } void setup(void) { //setup files Serial.begin(115200); display1.setI2CAddress(0x78); // sets the address for display 1 display1.begin(); // initializes display 1 //display1.setFont(u8g2_font_ncenB08_tr); // choose a suitable font display1.clearDisplay(); // clears display 1 display2.setI2CAddress(0x7A); // sets the address for display 2 display2.begin(); // initializes display 2 //display2.setFont(u8g2_font_ncenB08_tr); // choose a suitable font display2.clearDisplay(); // clears display 2 } void loop(void){ // This runs the whole program currentMillis= millis(); // start timer checkDistance(); checkTemp(); checkLaserButton(); //not working quite right yet runDisplays(); randomLEDS(); }
Imagine transforming your WordPress site without touching a single line of code. That’s the magic of Full Site Editing (FSE)! It’s a game-changer for beginners, giving you the power to design and customize every corner of your website using simple building blocks called blocks. Think of these blocks like Lego bricks for your website. Previously, customizing your site beyond the content area often involved editing theme files or using complex page builders. FSE simplifies this process dramatically, making website creation more accessible and intuitive for everyone.
Why Would a Beginner Want to Use FSE?
Pros:
No coding required: Build beautiful websites without touching a single line of code.
Drag-and-drop interface: Edit your site visually, just like using Legos.
Flexibility and customization: Design unique layouts and personalize your website exactly how you want.
Faster development: Build pages quicker and easier compared to traditional methods.
Responsive design: FSE themes adapt automatically to different screen sizes.
Future-proof: This is the direction WordPress is moving, so learning FSE now benefits you long-term.
Cons:
Still evolving: Some features and themes might be under development.
Learning curve: While easier than coding, there’s still a learning curve to understand blocks and the interface.
Limited theme selection: Currently, fewer themes fully support FSE compared to traditional themes.
Check Your Compatibility
Before jumping in, make sure your WordPress setup is ready for FSE. You’ll need:
WordPress 6.0 or later: Newer versions offer better FSE support. Check your version under Dashboard > Updates.
Block-based theme: Traditional themes won’t work with FSE. Look for themes marked as “block-based” or “FSE-compatible.”
Install a Beginner-Friendly FSE Theme
Choosing the right theme is crucial! Here are some popular options for beginners:
Twenty Twenty-Three (TT3): The official WordPress theme built for FSE, packed with features and customization options.
Astra: Highly customizable and lightweight, perfect for various website types.
Kadence: Offers pre-built layouts and drag-and-drop functionality for easy site creation.
GeneratePress: Simple and lightweight with a powerful theme builder for more control.
Remember, you can always change themes later! Install your chosen theme via Appearance > Themes in your WordPress dashboard.
Navigate the FSE Interface
Once you activate your FSE theme, explore the new “Site Editor” interface:
Sidebar: Houses all available blocks for you to drag and drop onto your pages.
Toolbar: Provides options for managing layouts, settings, and previewing your site.
Canvas: This is where you build your pages by adding and arranging blocks.
Inspector: Customize individual blocks by adjusting their styles, content, and settings.
Key Features
Block patterns: Pre-designed layouts ready to be inserted for faster page building.
Global styles: Set consistent fonts, colors, and spacing for your entire site.
Templates: Create reusable page layouts for different sections of your website.
These are just a few highlights. Experiment and explore the interface to discover its full potential!
Building Your Website with FSE
Dive into the Fun Stuff!
Now that you’re comfortable with the basics, let’s get your hands dirty and start building! Here are the core pillars of FSE website creation:
Pages
Creating New Pages:
Open the Site Editor and choose “Pages” to see existing ones or “Add New” to create a fresh page.
Explore the library of “Blocks” on the left sidebar. Drag and drop them onto the canvas to build your page structure.
Each block represents different content types (text, images, buttons, etc.). Customize each block using the Inspector panel on the right.
Editing Existing Pages:
Select the page you want to edit from the “Pages” section.
The Site Editor displays the existing page layout with all its blocks.
Edit individual blocks by clicking on them and using the Inspector panel. Add new blocks and rearrange them as needed.
Using Pre-built Templates (if available):
Some FSE themes offer pre-built “Page Templates” with ready-made layouts for different purposes (homepage, contact page, etc.).
Access these templates in the Site Editor and choose the one that best suits your needs.
Customize the template further by editing individual blocks and their content.
Navigation
Customizing Your Menu:
Go to “Appearance > Menus” in the WordPress dashboard.
Add menu items for your pages or categories. Rearrange them using drag-and-drop.
In the Site Editor, open the “Navigation” section. You can see the menu you created.
Customize its appearance (fonts, colors, spacing) using the menu editor within the Site Editor.
Creating Different Menus:
You can create multiple menus for different sections of your website.
In the Menus section of the dashboard, create separate menus for specific areas (e.g., main menu, footer menu).
Within the Site Editor, assign different menus to different locations on your website (e.g., header, footer).
Understanding Block Types
Explore the diverse block library within the Site Editor. You’ll find blocks for:
Text and headings
Images and galleries
Buttons and forms
Videos and social media embeds
And much more!
Adding, Arranging, and Editing Blocks:
Find the block you need in the library, drag and drop it onto the canvas.
Arrange blocks by dragging and dropping them to reorder.
Click on any block to access the Inspector panel and customize its content, style, and settings.
Global Styles
Setting Overall Site Design:
Go to “Appearance > Global Styles” in the dashboard.
Define your website’s overall typography (fonts, sizes, colors).
Set color palettes for different elements (buttons, backgrounds, etc.).
Define spacing and layout options for a consistent feel throughout your site.
Going Further with FSE
Advanced Tips and Resources
Now that you’ve grasped the core concepts of building with FSE, let’s explore ways to elevate your website creation experience:
Reusable Styles
As mentioned, defining reusable styles within “Global Styles” is a powerful tool for maintaining consistency and efficiency. Here’s how:
Create multiple styles: Define different styles for headings, buttons, forms, etc., to build a design system for your website.
Apply styles easily: In the Site Editor, select blocks and quickly apply predefined styles from the dropdown menu.
Update styles globally: Modifying a style within “Global Styles” automatically updates all blocks using that style, saving you time and effort.
Patterns for Faster Page Building
Discover “Patterns”: Many FSE themes offer pre-designed blocks called “Patterns” representing sections like hero areas, contact forms, and more.
Insert patterns quickly: Drag and drop patterns onto your page to save time on building common elements.
Customize patterns: Edit patterns like any other block to make them your own without starting from scratch.
Block Plugins for Extended Features
Expand your toolkit: Install block plugins that add even more block options to your library.
Find specific functionalities: Plugins offer blocks for advanced features like social media feeds, custom forms, and complex layouts.
Choose wisely: Select plugins with good reviews and active development for a smooth experience.
Troubleshooting Common FSE Issues
Seek help: While relatively user-friendly, FSE might encounter minor issues.
Consult documentation: Check your theme’s documentation for troubleshooting tips related to specific themes or blocks.
Community forums: Utilize online forums and communities dedicated to WordPress and FSE for help from other users and developers.
Resources for Deepening Your FSE Knowledge
Official WordPress Documentation: Dive deeper into the technical aspects and specific features of FSE.
Theme Developer Resources: Many theme developers offer tutorials and guides specific to their FSE themes.
Simple Site Design and Site Editing: This course reviews the interconnected features of site editing in WordPress and how they can help you create beautiful site designs without using any code. [Course Link]() WordPress Full Site Editing with Gutenberg on Udemy: This course teaches how to design your theme as well as your posts and pages using Gutenberg, Full Site Editor. It is suitable for WordPress users who want to learn to harness the power of Full Site Editing with Gutenberg. [Course Link]() Courses on Learn WordPress: Learn WordPress offers various courses that teach the more technical aspects of working with WordPress, including theme development, building plugins, and block development. [Course Link]()
Official WordPress Resources:
Official Website:wordpress.org – The official website for WordPress, where you can download the software, find documentation, and learn more about using it.
WordPress Codex:codex.wordpress.org – A comprehensive documentation resource for WordPress, covering everything from installation and configuration to specific functionality and troubleshooting.
WordPress Theme Directory:wordpress.org/themes – The official WordPress theme directory is a great place to find free and premium WordPress themes. You can browse themes by category, feature, and popularity.
By following this guide and utilizing the recommended resources, you can confidently navigate and master WordPress Full Site Editing, creating beautiful, functional, and responsive websites without any coding knowledge.
Newbie here. I'm trying to lay the groundwork for migrating to Waterfox/Firefox from Chromium browsers. One of the peeves that I have is the tiny extensions/add-on icons. It's very offputting. I tried the usual suggestions, with no luck. Ttoolbar density, about:config, etc, but was pointed to userChrome as a solution. I'm just hacking around at this, to get the right balance. FYI, I'm using Linux, with text scaling at x1.2. My eyes need a break. https://preview.redd.it/9g65owo4kj4d1.png?width=1401&format=png&auto=webp&s=dcac2108980360ad47c857030ae24a2aa676256c TLDR: I'm able to resize the extension icons with this line... .toolbarbutton-icon { width: 22px !important; height: 22px !important; } But the Open a new tab '+' icon next to the last tab shrinks down to basically a dot. If I hover over it, the outline size is normal. I can get a barely usable mix in WF with 27x27 (only semi-clownishly large extension icons and a tiny '+' sign), but in FF, the values need to be even more extreme. Is there a better way to achieve my goal, or another setting to add to reset the '+' icon size? And a side question, is there a string that can set the color of the '+'? Even when I make everything huge, enabling a theme seems to wash it out completely. Here's the current full content of my userChrome. I've tried commenting out all other settings but the last line, but they don't seem to have any bearing on the issue. So I don't think that they are factors... /* Set font & icon options for Toolbar */ #navigator-toolbox { font-family:'Arial' !important; } #navigator-toolbox { color: #ffffff !important; } #nav-bar .toolbarbutton-1 > .toolbarbutton-icon { height: 40px !important; width: 40px !important; } /* Set font & icon options for Bookmarks Toolbar */ #PlacesToolbarItems > .bookmark-item { padding: 0 7px !important; } #PlacesToolbarItems > .bookmark-item > image { height: 22px !important; width: 22px !important; } #PlacesToolbarItems .bookmark-item { font-size: 16px !important; } #PlacesToolbarItems .bookmark-item { color: #ffffff !important; } /* Set size for Toolbar Extensions icons */ .toolbarbutton-icon { width: 22px !important; height: 22px !important; } Thanks
Countdown times are in local time. All times are subject to change based on the length of matches and delays. Other match discussions: /dota2 on Discord
2024.06.04 05:13 SuitablePhase7663HOW TO BREAK ANKLES WITH Q (and other tips I find useful) ((very important))
::HARD NOTE;;I AM ONLY AN EMERALD 3 SUPPORT MAIN. I DON'T CLAIM TO BE A PRO OR EVEN WORTHY OF LISTENING TO. THIS IS ALL COMING FROM THE 80% WR I MANAGED TO ATTAIN RIGHT NOW. Hello all. I will try to make this brief. I call it: "THE WIGGLE TECH" Wiggle the Q at the beginning, then just aim right for them, or the direction they instinctively dodge in. This is super useful when you see the enemies going for CS, especially cannon minions. Switch targets unpredictably for a total of 4 ankles broken. Eventually, they will both become crippled and numbed to your Q, and might even give up on trying to dodge it altogether. They will spend more time focused on trying to outsmart your skillshot than actually laning, and it potentially makes you a bigger threat than your adc. All you have to master after this is knowing the exact time when the projectile goes turbo. Once you get the timing down, the rift is your oyster. Just be careful of those pesky enemy jg/mids camping you after their bot is 0/4/0 5 minutes in. Always keep an eye on the minimap, and ping the missing enemies if your lane is pushing hard early. You don't have to fully focus on the lane because you aren't really zoning, so there's no excuse to not be able to split your attention after throwing out Qs. :OPTIMAL BUILD: (IMO) Exhaust, Heal Aery, Manaflow, Absolute Focus, Gathering Storm, Font of Life, Revitalize, Double adaptive, Tenacity Dream Maker, Mandate, (early Oblivion Orb after Bandleglass if you're against Milio, Soraka, Nami, Sona, Seraphine, other enemies that might have stupid healing, etc.) Dawncore, Moonstone, Ardent, Redemption SITUATIONAL ITEMS INSTEAD OF ARDENT/REDEMPTION: Morello, Mikaels, Flowing Water, Shurelyas. :OTHER TIPS: ALWAYS ASK YOUR ADC WHICH CHAMP THEY ARE PICKING, AND PICK/BAN ACCORDINGLY. BAN SAMIRA IF YOUR ADC ISN'T PLAYING THEM. THAT W IS THE BANE OF OUR (and your adc's) EXISTENCE. CHECK ADC SUMMONERS. It's better if they go Ghost/Cleanse (if they ACTUALLY know how to use it and don't mistake it for heal) than double Heal or Ignite. PICK YUUMI AS FAST AS POSSIBLE. Switch your way up the pick order, as it helps your team get counter-picks, and pretty much forces the enemy to try to counter-pick you instead. Prioritize top as that lane gets dumpstered the hardest in counter-picks, and is hardest to comeback from when they're behind. DON'T BUY POTIONS AT THE START. THAT GOLD IS SO VALUABLE FOR YOUR NEXT ITEM. Your level 2 is a lot more threatening than theirs because you effectively have all your skills available 1 level earlier. Safely help your adc get the first 1 1/2 waves without getting hard cc'd by engage supports (Blitz, Naut, Morgana, Thresh, Leona, Taric, etc.) Get used to playing off lock-screen when aiming at enemies. If an engage looks good, your adc will flash preemptively in to close the distance, and if you're still in lock-screen, this can potentially add some unwanted wiggles to your aim. Try to keep the center of the screen on your target because the hitbox is a lot smaller than you think. Actually exit your adc when a minor 2v2 breaks out early. Yuumi autos really do add up, and give your adc more confidence in fights. If you can, use your Q and E BEFORE leaving to give your adc that extra push without the healing on-hit. Make sure to take notes of what hard cc they have available, and don't be afraid to take some damage. If you end up getting focused, they usually end up wasting too much, and your adc comes out on top. If your adc dies in the middle of the lane, you're dead anyway, might as well get some scratches in. If the lane is looking risky and your adc can't even walk up for cs, you can proc the Atlas passive on minions if you execute the minion with Q. Abandon ship ASAP (preferably after they use their hard cc to catch the adc) if a gank looks grim, and bolt to your tower. Sometimes after they kill the adc, they will try to dive you foolishly, and that's when you E yourself, auto, and throw that nasty Q to slow them inside tower range. Make sure to wait for them to damage you, and focus on whoever the tower is targeting. Trust me, so many people greed for a solo Yuumi, and it gets them killed, or force a flash instead. Another pointer on aiming the Q during laning- angle the Q perpendicular to the majority of the minions, and then a little bit before the acceleration, do a fast 'n furious curve to snipe them. This works especially well if they try to dodge into the minions, as it forces them to reposition closer to your adc and potentially get their autos/combo off. If they hit your adc, minions will re-aggro, and the lane will become yours. MAX W SECOND. This is such a huge point I can't stress it enough. The heal/shield power is just too good to pass up, and the on-hit healing lets your adc lane/fight a little more comfortably as they know they can take safer engages/trades because they can just heal themselves up. Sometimes, if your adc is getting poked too much, you might want to put an extra point in W at level 4 to keep the sustain up. The only time I would max W first is if the enemy actually outsmarts your wiggle consistently. Some enemies end up playing so passively that you might even max Q last. When fighting dragon/baron/herald, aim Q directly away from the objective, then immediately point towards it to (pretty much) guarantee the empowered damage. Sometimes, you gotta give it a split-second to gain some distance if your partner is too close to the target. Switch to jungler for a quick E because they're tanking the damage, and it might come in handy to keep them healthier if enemies decide to collapse. Sometimes, you want to bait them into using their CC on you, so you fake-out an exit, then quickly re-enter your adc. Don't repeat this too often because of the long early cooldown. This is very risky and requires a little bit of conditioning/patience before getting good at it. It is VERY likely the support will try to flash CC you just to get a free kill if you aren't careful, but if done properly, you might even waste their flash for being too antsy to kill you. :DON'T PICK YUUMI IF:
Your team is flaming you in champ select for hovering her, or asks you if you can play something else. *Some weak-minded individuals will genuinely tilt, and force you to lose the game.
You stay inside your adc at all times, except when you want to proc the atlas/ward.
You ONLY stay inside your adc. *When fights break out, sometimes it's better to hop on the frontline for a quick E to keep them alive, and get a better angle with your ult. If someone else is carrying, and your adc is dookie, its better to switch to them and try to get best friend with them instead.
You fail to incorporate wiggle tech into your laning phase.
You max E first.
You don't know when/how to use her ult. *Sometimes it's better to aim it at your team right as the fight is about to begin, rather than when everyone is already low. With moonstone, this is basically a temporary fountain heal for your entire team. Good ults can turn around objective fights, and crush any hope the enemy has of winning more of them.
:BEST ADCS TO YUUMI WITH: (IMO, kind of in order)
Caitlyn
Draven
Zeri
Jhin (hands ABSOLUTELY needed)
Kog'maw
Vayne (some hands required)
Samira (engage supports are better)
Ashe (if they got hands)
Kai'sa (also if they got hands)
Lucian
Nilah
Tristana
Twitch
Aphelios (hands required)
Jinx (can't be mentally deranged)
Ezreal (I can hardly recall a time when I've done well with them)
Smolder (only if you know your team is willing to go the lengths to get/keep him fed)
Miss Fortune (she's treading on VERY, VERY thin ice)
:BEST JUNGLERS TO PIVOT TO IF YOUR ADC IS DOOKIE: (IMO, in no order)
Viego
Bel'veth
Nocturne
Kindred
Diana
Briar
Volibear (furry fans only)
Xin Zhao
Warwick (furry fans only)
Rengar (hot cat on cat action)
Shaco (AD ONLY)
Kayn (DARKIN ONLY)
Vi
Hecarim (ZOOOOOOM)
Lee Sin
Skarner
Udyr
Trundle
Master Yi
Olaf
Rek'sai
Poppy (if she's actually hard carrying)
:OTHER CHAMPS YOU MIGHT WANT TO PIVOT INTO IF NOBODY IS DOING WELL: (IMO, kind of in order)
Yone (they will ff)
K'sante (borderline illegal)
Irelia
Kled
Tryndamere (if he's not constantly split-pushing and refusing to group)
Yasuo
Garen
Nasus
Urgot
Riven
Jax
Jarvan
Aatrox (healing out the wazoo)
Camille
Fiora
Wukong
Gankplank
Azir
Renekton
Gwen
Katarina (on-hit only)
Akshan
Fizz (RARE)
Cho'gath (VERY RARE)
Kassadin
Sett
Quinn (needs to be very ahead and actually roams)
Singed
Sylas
Twisted Fate (turn 1v1's into 3v1's)
Kayle
Ekko
:WORST ADCS TO YUUMI WITH: (IMO, can't be ordered)
2024.06.04 02:16 SethTheBlueWhy Can't I Load This Modpack?
I'm trying to load the latest version of the Frank's Pokepark modpack, but for some reason it refuses to load. I am running the pack on Modrinth via my Macbook. I have copied the log that forms when I press "play" (I understand that it's probably an issue with Pokemon Showdown, but I cannot figure out what the issue actually is): null[19:10:25] [main/INFO]: Loading Minecraft 1.20.1 with Fabric Loader 0.15.10 [19:10:25] [main/INFO]: Fabric is preparing JARs on first launch, this may take a few seconds... [19:10:25] [main/WARN]: Warnings were found!
Mod 'Create Enchantment Industry' (create_enchantment_industry) 1.2.16 recommends version 0.5.1-f-build.1335+mc1.20.1 of mod 'Create' (create), but only the wrong version is present: 0.5.1-f-build.1417+mc1.20.1!
You should install version 0.5.1-f-build.1335+mc1.20.1 of mod 'Create' (create) for the optimal experience.
[19:10:25] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=file:/Users/{COMPUTER_USERNAME}/Library/Application%20Support/com.modrinth.theseus/meta/libraries/net/fabricmc/sponge-mixin/0.13.3+mixin.0.8.5/sponge-mixin-0.13.3+mixin.0.8.5.jar Service=Knot/Fabric Env=CLIENT [19:10:25] [main/INFO]: Compatibility level set to JAVA_17 [19:10:26] [main/INFO]: Loaded configuration file for Sodium: 42 options available, 3 override(s) found [19:10:26] [main/WARN]: Error loading class: io/vram/frex/base/renderecontext/rendeEntityBlockRenderContext (java.lang.ClassNotFoundException: io/vram/frex/base/renderecontext/rendeEntityBlockRenderContext) [19:10:26] [main/WARN]: @Mixin target io.vram.frex.base.renderer.context.render.EntityBlockRenderContext was not found porting_lib_base.mixins.json:client.frex.EntityBlockRenderContextMixin from mod porting_lib_base [19:10:26] [main/WARN]: Error loading class: juuxel/adorn/block/variant/BlockVariantSets (java.lang.ClassNotFoundException: juuxel/adorn/block/variant/BlockVariantSets) [19:10:26] [main/WARN]: @Mixin target juuxel.adorn.block.variant.BlockVariantSets was not found mixins.cobblemon-common.json:invoker.AdornRegisterInvoker from mod cobblemon [19:10:26] [main/WARN]: Error loading class: com/firemerald/additionalplacements/common/ConfigCommon (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/common/ConfigCommon) [19:10:26] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:26] [main/WARN]: @Mixin target com.firemerald.additionalplacements.block.AdditionalPlacementBlock was not found copycats-common.mixins.json:compat.additionalplacements.PlacementBlockMixin from mod copycats [19:10:26] [main/WARN]: Error loading class: me/jellysquid/mods/lithium/common/ai/pathing/PathNodeDefaults (java.lang.ClassNotFoundException: me/jellysquid/mods/lithium/common/ai/pathing/PathNodeDefaults) [19:10:26] [main/WARN]: Error loading class: dev/latvian/mods/kubejs/recipe/RecipesEventJS (java.lang.ClassNotFoundException: dev/latvian/mods/kubejs/recipe/RecipesEventJS) [19:10:26] [main/WARN]: @Mixin target dev.latvian.mods.kubejs.recipe.RecipesEventJS was not found sliceanddice.mixins.json:RecipeEventJSMixin from mod sliceanddice [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.entity.CuboidMixin' as rule 'mixin.features.render.entity' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.entity.ModelPartMixin' as rule 'mixin.features.render.entity' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.entity.cull.EntityRendererMixin' as rule 'mixin.features.render.entity' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.entity.shadows.EntityRenderDispatcherMixin' as rule 'mixin.features.render.entity' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.gui.font.GlyphRendererMixin' as rule 'mixin.features.render.gui.font' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.world.sky.BackgroundRendererMixin' as rule 'mixin.features.render.world.sky' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.world.sky.ClientWorldMixin' as rule 'mixin.features.render.world.sky' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Force-disabling mixin 'features.render.world.sky.WorldRendererMixin' as rule 'mixin.features.render.world.sky' (added by mods [iris]) disables it and children [19:10:26] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:26] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:26] [main/INFO]: Searching for graphics cards... [19:10:27] [main/INFO]: Found graphics card: GraphicsAdapterInfo[vendor=UNKNOWN, name=Apple M2, version=unknown] [19:10:27] [main/INFO]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.3.5). [19:10:29] [main/WARN]: @Inject(@At("INVOKE")) Shift.BY=2 on porting_lib_entity.mixins.json:common.LivingEntityMixin from mod porting_lib_entity::handler$cjj000$porting_lib_entity$port_lib$onFinishUsing exceeds the maximum allowed value: 0. Increase the value of maxShiftBy to suppress this warning. [19:10:29] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:29] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:29] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:29] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:29] [main/WARN]: Error loading class: com/firemerald/additionalplacements/block/AdditionalPlacementBlock (java.lang.ClassNotFoundException: com/firemerald/additionalplacements/block/AdditionalPlacementBlock) [19:10:30] [Datafixer Bootstrap/INFO]: 188 Datafixer optimizations took 71 milliseconds [19:10:31] [Render thread/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [19:10:32] [Render thread/INFO]: Setting user: {MINECRAFT_USERNAME} [19:10:32] [Render thread/INFO]: Initializing Beans' Backpacks Constants [19:10:32] [Render thread/INFO]: Initializing Beans' Backpacks Common [19:10:32] [Render thread/INFO]: Initializing Beans' Backpacks Fabric [19:10:32] [Render thread/INFO]: Registering Item Group for casualness_delight [19:10:32] [Render thread/INFO]: Registering Mod Tags for casualness_delight [19:10:33] [Render thread/INFO]: Booting LaxPermissionValidator, permissions will be checked using Minecrafts permission level system, see https://minecraft.fandom.com/wiki/Permission\_level [19:10:33] [Render thread/INFO]: Launching Cobblemon 1.5.2 [19:10:33] [Render thread/INFO]: Booting FabricPermissionValidator, permissions will be checked using fabric-permissions-api, see https://github.com/lucko/fabric-permissions-api [19:10:33] [Render thread/ERROR]: No data fixer registered for cobblemon:pokemon [19:10:33] [Render thread/ERROR]: No data fixer registered for cobblemon:empty_pokeball [19:10:33] [Render thread/ERROR]: No data fixer registered for cobblemon:boat [19:10:33] [Render thread/ERROR]: No data fixer registered for cobblemon:chest_boat [19:10:33] [Render thread/ERROR]: No data fixer registered for cobblemon:generic_bedrock [19:10:33] [Render thread/INFO]: Starting the Best Spawner... [19:10:33] [Render thread/INFO]: Loaded 5 spawning condition types. [19:10:33] [Render thread/INFO]: Loaded 5 spawning context types. [19:10:33] [Render thread/INFO]: Loaded 1 spawn detail types. [19:10:33] [Cobblemon Showdown/INFO]: Starting showdown service... [19:10:34] [Cobblemon Showdown/ERROR]: Hacked JS files in datapacks or some weird file system setup that Hiroku failed to anticipate. [19:10:34] [Cobblemon Showdown/ERROR]: Uncaught exception in thread "Cobblemon Showdown" org.graalvm.polyglot.PolyglotException: TypeError: Cannot load module: './sim/battle-stream'
at .:program(Unnamed:10) \~\[?:?\] at org.graalvm.polyglot.Context.eval(Context.java:425) \~\[Cobblemon-fabric-1.5.2+1.20.1.jar:?\] at com.cobblemon.mod.common.battles.runner.graal.GraalShowdownService.boot(GraalShowdownService.java:124) \~\[Cobblemon-fabric-1.5.2+1.20.1.jar:?\] at com.cobblemon.mod.common.battles.runner.graal.GraalShowdownService.openConnection(GraalShowdownService.java:60) \~\[Cobblemon-fabric-1.5.2+1.20.1.jar:?\] at com.cobblemon.mod.common.battles.ShowdownThread.run(ShowdownThread.java:40) \~\[Cobblemon-fabric-1.5.2+1.20.1.jar:?\]
2024.06.04 02:03 Spiritual-Arm-2361Finally made my Expo project run fine on my turbo monorepo
At first the app was running fine and I had issues with the tests (using jest as runner), when I got tests fixed the app has broken. It was long and painful journey of ~16h of hacking until I got it working, finally. So I'll paste down my configs in case it might be helpful for someone else. Please note that I'm using Nativewind and some lines you might modify/skip if you are not. Also, initially I was using Expo 49, so I needed also to upgrade it to 51 (please upgrade one version at a time before anything else).
2024.06.03 23:14 VenexConHaving a nightmare with nextjs forms and netlify!
Good Evening, I have spent longer than I care to admit with trying to get this to work and am posting here in defeat. I have a very simple landing page built in nextjs. This is my first foray into nextjs and I am loving the framework. I have a problem whereby netlify does not recognise/detect my rendered form and I am unsure if this is because of SSR. I have followed the netlify docs but have had no success with getting netlify to detect the form, I have tried following along with their react frameworks form docs but again, no luck. Form what I understand nextjs builds the site on the server it then sends the completed html page to the browser, this should mean that netlify can detect the form as it will see it as a already rendered html document form element. However, most things I have seen online state that you need to add a "fake" form to your html document to get netlify to be able to detect that there is a form element on the page. From my set-up this is not possible as nextjs has no html element or page for me to place this into? The below code is for the CTA component.
const handleSubmit = (event) => { event.preventDefault(); const form = event.target; const formData = new FormData(form); const email = formData.get("email"); const phone = formData.get("phone"); const name = formData.get("name"); const reason = formData.get("reason"); const validationErrors = {}; if (!email.includes("@")) { validationErrors.email = "Please enter a valid email address."; return; } if (phone.length > 11) { validationErrors.phone = "Phone number cannot exceed 11 characters."; return; } if (Object.keys(validationErrors).length > 0) { setErrors(validationErrors); return; } setErrors({}); fetch("/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams(formData).toString(), }) .then(() => setIsSubmitted(true)) .catch((error) => alert(error)); form.reset(); }; return (
2024.06.03 21:21 iiNanomichART: ebonheart active effects
amazing race tweaks not working amazing race tweaks: ebonheart active effects is not showing up in my NEW character's active effects. it is functioning in my main gameplay, though, as of today. i tried to follow the LLO guide as best i could when i firat encountered the issue. here's my load order: ussep skyrim cut content jayserpa lines expansion guard dialogue overhaul cheat room (xb1) free crafting free player home font replacer - eadui jayserpa quest expansion at your own pace aio less tedious thieves guild skyrim reputation wintersun - faiths of skyrim sacrilege - minimalistic vampires of skyrim andromeda - unique standing stones of skyrim game environment tweaks: immersive cheats wear multiple rings [xbone] hearthfire display cases war: immersive weapons bounty preview [xb1] big: ultimate kills get no more dead followers better harvesting get no more dead merchants amazing race tweaks: ebonheart vokrii - minimalistic perks odin - skyrim magic odin - vokrii compatibility better gold pentapox audio aio better black door - dark brotherhood azurite weathers ii (v2.52) sky collection: galaxy of nirn azurite mists by dr jacopo (unp) lovergirl skin - 4k loverboy default 2k seraphim female body racial body morphs - standard xp32 maximum skeleton extended old kingdom - weapon overhaul old kingdom - weapon overhaul cheat room patch old kingdom - armor overhaul rally's all the things - aio diverse dragons rally's furniture aio rally's solstheim aio 1k saerileth choice: models and textures cathedral 3d plants aio enhanced blood (512) pretty lanterns ilinalta - realistic water realistic rs+elven children argonian skintones [xbox] populated lands more to say 9.0.2 sissel book quest - more to say addon fancy followers overhaul immersive amazing follower tweaks teldryn sero dialogue expansion [xb1] marriage voice types immersive carriages elegant jarls (xb1) immersive patrols character creation overhaul provincial courier service vanilla hair - salt and wind (1k) argonians enhanced td18 lore-friendly hairs natural eyes pretty lips full lip tintmasks 4k genuine giants rainbows over waterfalls remove small rocks hot springs of skyrim [xb1] lampposts of skyrims glowing azure statue remove hearthfire grossness better gray quarter peaceful hearthfire hearthfire custom basement madmen -- forsworn real armies - civil war twenty eight friendly cats mihail house cats - my version by xtudo [xb1] civil war aftermath flame vfx edit - normal frost vfx edit pastel map markers [xb1] alternate start - live another life new beginnings - live another life add on humble beginnings for alternative start js quest expansion alternative start patch o