Wintersoul Sweater (EN)

About Wintersoul Sweater (EN)

The Wintersoul Sweater by Dorothy Offeciers / adorable knits is a seamless top–down colourwork raglan worked in DK to light-worsted yarns with an average yardage of 110–125 m per 50 g. The design features a double-folded crew neck, straight sleeves, and a beautifully structured stranded motif across the yoke, body and sleeves. Ribbing is worked on 3 mm needles, stockinette on 4 mm, and colourwork on 5 mm, giving a gauge of 20 sts per 10 cm in both plain and stranded sections. Sizes range from XS to 5XL, and the pattern includes the option to knit the standard cropped length or one of two longer variations. With its clean silhouette, elegant Italian bind-off and detailed charts per size, the Wintersoul Sweater is an ideal project for knitters who appreciate modern Nordic colourwork and top–down construction.

Designer

Craft

Stitch Pattern & Technique

, , , , , , , ,

Difficulty Level

Clothing Size (Adult)

, , , , , , , ,

Language

Needle / Hook Size

,

Meterage (per 50 g)

,

Gauge

Collection

,

About this Pattern

The Wintersoul Sweater is a beautifully designed colourwork raglan by Dorothy Offeciers / adorable knits, created as a seamless top–down sweater with a relaxed and slightly oversized fit. Featuring a clean double-folded crew neck, straight sleeves and body, and a stunning stranded motif across yoke, body and sleeves, the design brings together technical clarity and Nordic-inspired elegance. Worked first back and forth to shape the neckline and then joined in the round, the construction ensures a precise fit across all sizes from XS to 5XL. The sweater includes both the standard slightly cropped length as well as two optional longer lengths, allowing you to tailor the fit to your personal style.


The pattern is written for light worsted / heavy DK yarns with a yardage of approx. 110–125 m per 50 g, depending on the chosen fibre. From the given yarn options, the approximate average yardage per 50 g can be calculated as follows:
Puno Fine by MAJO Garn: 50 g = 125 m
Fluff Colour by Lalouknits: 50 g = 110 m
Brisa by BC Garn: 50 g = 110 m
This places the required yarn firmly within the DK–light worsted range. Total meterage varies by size but averages around 700–1250 m in MC and 325–625 m in CC across the size range .


The knitting gauge is essential for the characteristic look of the Wintersoul Sweater. The blocked gauge is 20 sts per 10 cm in both stockinette and stranded colourwork, with 26 rounds in plain stockinette and 21 rounds in colourwork using larger needles. Ribbing is worked at 22 sts per 10 cm, giving a neat and elastic finish . The recommended needle sizes are 3 mm for ribbing, 4 mm for stockinette, and 5 mm for stranded knitting, though knitters are advised to swatch carefully to match row and stitch gauge.


Body and sleeves are worked in continuous rounds in stockinette and stranded motifs, with underarm stitches cast on using the backward-loop method to create a seamless transition. The sleeves are finished to a straight silhouette with wide twisted-rib cuffs, and the hem mirrors this clean structure. The neckline is picked up and worked in a twisted rib before being folded double and sewn down from the inside for a perfectly structured edge.


The Wintersoul Sweater is the perfect project for knitters who love clear instructions, graphic colourwork and a modern Scandinavian look. Whether kept cropped or knitted with one of the two lengthening options, it becomes a timeless winter wardrobe piece with a beautifully soft drape and crisp visual details.

Meet

Adorable Knits

Adorable Knits is a Belgian designer who fell in love with knitting in 2018 and began designing her own collections in 2020. With a background as an interior architect, she transitioned to working full-time as a knitwear designer in 2023. She creates modern, sustainable knitwear for women, children, and soon men, with a strong focus on details and experimental techniques.

Related patterns

Other patterns you might enjoy.

<?php
/**
 * Mini-cart
 *
 * Contains the markup for the mini-cart, used by the cart widget.
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/cart/mini-cart.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see              https://woocommerce.com/document/template-structure/
 * @package          WooCommerce\Templates
 * @version          9.5.0
 * @flatsome-version 3.19.8
 */

defined( 'ABSPATH' ) || exit;

do_action( 'woocommerce_before_mini_cart' ); ?>

<?php if ( WC()->cart && ! WC()->cart->is_empty() ) : ?>

	<ul class="woocommerce-mini-cart cart_list product_list_widget <?php echo esc_attr( $args['list_class'] ); ?>">
		<?php
		do_action( 'woocommerce_before_mini_cart_contents' );

		foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
			$_product   = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
			$product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );

			if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
				/**
				 * This filter is documented in woocommerce/templates/cart/cart.php.
				*
				* @since 2.1.0
				*/
				$product_name      = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key );
				$thumbnail         = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
				$product_price     = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
				$product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key );
				?>
				<li class="woocommerce-mini-cart-item <?php echo esc_attr( apply_filters( 'woocommerce_mini_cart_item_class', 'mini_cart_item', $cart_item, $cart_item_key ) ); ?>">
					<?php
					echo apply_filters( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
						'woocommerce_cart_item_remove_link',
						sprintf(
							'<a href="%s" class="remove remove_from_cart_button" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s" data-success_message="%s">&times;</a>',
							esc_url( wc_get_cart_remove_url( $cart_item_key ) ),
							/* translators: %s is the product name */
							esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ),
							esc_attr( $product_id ),
							esc_attr( $cart_item_key ),
							esc_attr( $_product->get_sku() ),
							/* translators: %s is the product name */
							esc_attr( sprintf( __( '&ldquo;%s&rdquo; has been removed from your cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) )
						),
						$cart_item_key
					);
					?>
					<?php if ( empty( $product_permalink ) ) : ?>
						<?php echo $thumbnail . wp_kses_post( $product_name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					<?php else : ?>
						<a href="<?php echo esc_url( $product_permalink ); ?>">
							<?php echo $thumbnail . wp_kses_post( $product_name ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
						</a>
					<?php endif; ?>
					<?php echo wc_get_formatted_cart_item_data( $cart_item ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
					<?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf( '%s &times; %s', $cart_item['quantity'], $product_price ) . '</span>', $cart_item, $cart_item_key ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
				</li>
				<?php
			}
		}

		do_action( 'woocommerce_mini_cart_contents' );
		?>
	</ul>

	<?php do_action( 'flatsome_after_mini_cart_contents' ); ?>

	<div class="ux-mini-cart-footer">
		<?php do_action( 'flatsome_before_mini_cart_total' ); ?>

		<p class="woocommerce-mini-cart__total total">
			<?php
			/**
			 * Hook: woocommerce_widget_shopping_cart_total.
			*
			* @hooked woocommerce_widget_shopping_cart_subtotal - 10
			*/
			do_action( 'woocommerce_widget_shopping_cart_total' );
			?>
		</p>

		<?php do_action( 'woocommerce_widget_shopping_cart_before_buttons' ); ?>

		<p class="woocommerce-mini-cart__buttons buttons"><?php do_action( 'woocommerce_widget_shopping_cart_buttons' ); ?></p>

		<?php do_action( 'woocommerce_widget_shopping_cart_after_buttons' ); ?>
	</div>

<?php else : ?>

	<div class="ux-mini-cart-empty flex flex-row-col text-center pt pb">
		<?php do_action( 'flatsome_before_mini_cart_empty_message' ); ?>
		<p class="woocommerce-mini-cart__empty-message empty"><?php esc_html_e( 'No products in the cart.', 'woocommerce' ); ?></p>
		<?php do_action( 'flatsome_after_mini_cart_empty_message' ); ?>
	</div>

<?php endif; ?>

<?php do_action( 'woocommerce_after_mini_cart' ); ?>